Если я получаю отформатированную в RFC-1123 дату объекта DateTime, он отображает текущее местное время, но в качестве часового пояса используется время по Гринвичу (что является неточным).
DateTime.Now.ToString("r");
возвращает
Fri, 12 Feb 2010 16:23:03 GMT
В 4:23 после полудня, но мой часовой пояс UTC + 10 (плюс, мы сейчас наблюдаем летнее время).
Теперь я могу получить «правильное» возвращаемое значение, сначала преобразовав его в UTC:
DateTime.UtcNow.ToString("r");
возвращается
Fri, 12 Feb 2010 05:23:03 GMT
Однако, в идеале, я хотел бы получить правильный часовой пояс, который, я думаю, будет
Fri, 12 Feb 2010 16:23:03 +1100
Передача в текущем CultureInfo ничего не меняет. Я мог бы получить смещение UTC с помощью TimeZoneInfo.Local.GetUtcOffset (...) и отформатировать строку часового пояса из этого, но вычеркнув бит GMT и заменив его, кажется беспорядочно грязным.
Есть ли способ заставить его включить правильный часовой пояс?