在CEST(德国)给出DateTime,需要知道EST时间(包括DST)

时间:2018-04-24 17:47:32

标签: c# datetime timezone

我正在编写一个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.

1 个答案:

答案 0 :(得分:0)

您可以使用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.

对于不同的时区,您可以查看此question

祝你好运。