Мое приложение получает объект DateTime в формате UTC и ему нужно вывести его как строку в формате EST. Я пробовал следующий код, но когда я получаю выведите смещение все еще показывает как +00: 00 вместо -05: 00Преобразование UTC DateTime в EST DateTime с правильным смещением
static void Main(string[] args)
{
var currentDate = DateTime.Now.ToUniversalTime();
var convertedTime = ConvertUtcToEasternStandard(currentDate);
Console.WriteLine(currentDate.ToString("yyyy-MM-ddTHH:mm:sszzz"));
Console.WriteLine(convertedTime.ToString("yyyy-MM-ddTHH:mm:sszzz"));
}
private static DateTime ConvertUtcToEasternStandard(DateTime dateTime)
{
var easternZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
return TimeZoneInfo.ConvertTimeFromUtc(dateTime, easternZone);
}
Воспроизводит:
2016-11-18T06:56:14+00:00
2016-11-18T01:56:14+00:00
Таким образом, время является правильно сдвинувшись, но смещение остается на +00: 00, когда я хочу, чтобы оно было -05: 00. Любая идея, как я могу получить объект DateTime с правильным смещением при выводе с указанной выше строкой формата?
вы в времени UTC, случайно? –
Да, Великобритания, так что в настоящее время в UTC – Ruddles
Это ваша проблема. Добавлен ответ. –