如何使用DateTime对象获取特定时区的UTC时间月份数?

时间:2017-12-05 18:29:46

标签: .net .net-core

我有一个年底(12/31/2017)在DateTime对象中以UTC格式存储的EST时区。当我得到月份属性时它是1,因为它以UTC格式存储,而在转换UTC时在美国东部时间结束时是01/01/2018 04:59:59。

如何使用America / New_York时区将此日期转换为正确的时区,以获取该时区的正确月份数?

1 个答案:

答案 0 :(得分:1)

我最终使用Noda为我处理转换。

using NodaTime;
//Get the correct timezone
DateTimeZone zone = DateTimeZoneProviders.Tzdb ["America/New_York"];
//Convert to the correct month
var month = Instant.FromDateTimeUtc(endOfYear.ToUniversalTime()).InZone(zone.Month);
Console.Write(endOfYear.Month); //1 Not expected value
Console.Write(month); // 12 expected value