C#定义另一个时区中日期的开始日期

时间:2009-11-20 14:24:13

标签: c# .net datetime timezone utc

我想用.NET / C#定义另一个时区的一天开始。

实施例:   我目前的时区= GMT + 1   所以DateTime.Today返回19/11/2009 23:00 UTC

但实际上我想获得DateTime.Today for timezone GMT + 2,这将是19/11/2009 22:00 UTC。

如何在不使用偏移量的情况下执行此操作白天计算?

2 个答案:

答案 0 :(得分:2)

您可以使用TimeZoneInfo.ConvertTime。这是.NET 3.5中的新功能。

答案 1 :(得分:1)

尝试:

var zone = TimeZoneInfo.GetSystemTimeZones().First(tz => tz.StandardName == DesiredTimeZoneName);
Debug.WriteLine(new DateTimeOffset(DateTime.UtcNow.Date.Ticks, zone.BaseUtcOffset).ToUniversalTime());

AFAIK,没有其他办法可以做到这一点。