我正在编写一个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.
答案 0 :(得分:0)
您可以使用TimeZoneInfo
和DateTimeOffset
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
祝你好运。