首页 > 解决方案 > 给定 CEST(德国)中的 DateTime,需要知道 EST 时间(包括 DST)

问题描述

我正在编写一个 C# Windows 服务,它打开一个包含日期和时间列的文本文件。这两个都是在德国的 CEST 时间。我需要知道美国东部时间的这些时间。我不知道如何考虑双方的夏令时。有人可以指导我吗?我不知道怎么做。

lsRetrievedDateTime = cellvalues[10] + " " + cellvalues[11];
ldRetrievedDateTimeCEST = DateTime.ParseExact(MyDateString, "M/dd/yyyy H:mm:ss", null);

//  ldRetrievedDateTimeCEST is actually Germany time and we need to convert it to EST.

标签: c#datetimetimezone

解决方案


您可以使用TimeZoneInfoDateTimeOffset

lsRetrievedDateTime = cellvalues[10] + " " + cellvalues[11];
ldRetrievedDateTimeCEST = DateTime.ParseExact(MyDateString, "M/dd/yyyy H:mm:ss", null)    
//Create a TimeZoneInfo Object and set TimeZone
var info = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
//Create DateTimeOffSet object with TimeZoneInfo and DateTime as parameters.

DateTimeOffset est_time = TimeZoneInfo.ConvertTime(ldRetrievedDateTimeCEST , info);

//Now you can use est_time

MessageBox.Show(est_time.ToString()); //will return EST time.

对于不同的时区,你可以检查这个问题

祝你好运。


推荐阅读