Meine App ruft ein DateTime-Objekt in UTC ab und muss es als Zeichenfolge im EST-Format ausgeben. Ich habe den folgenden Code versucht, aber wenn ich die Ausgabe der Offset zeigt immer noch als +00 bekommen: 00 statt -05: 00Konvertieren von UTC DateTime in EST DateTime mit korrektem Offset
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);
}
Diese Ausgänge:
2016-11-18T06:56:14+00:00
2016-11-18T01:56:14+00:00
So ist die Zeit wird korrekt verschoben, aber der Offset bleibt bei +00: 00, wenn ich möchte, dass es -05: 00 ist. Irgendeine Idee, wie ich ein DateTime-Objekt mit dem korrekten Offset erhalten kann, wenn es mit der obigen Formatzeichenfolge ausgegeben wird?
Sind Sie in der UTC-Zeit, durch Zufall? –
Yeah, UK so derzeit in UTC – Ruddles
Das ist dein Problem. Eine Antwort hinzugefügt. –