我有一个年底(12/31/2017)在DateTime对象中以UTC格式存储的EST时区。当我得到月份属性时它是1,因为它以UTC格式存储,而在转换UTC时在美国东部时间结束时是01/01/2018 04:59:59。
如何使用America / New_York时区将此日期转换为正确的时区,以获取该时区的正确月份数?
答案 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