我对第三方应用程序的Web服务调用返回日期,时区和timezone_offset值。我需要将此添加到Asp.net应用程序的日历中。将日期和日期结合在一起的最佳方法是什么,以便我的日期对象从东部时区了解它?
<start_date>2014-11-17 19:00:00</start_date>
<timezone>America/New_York</timezone>
<timezone_offset>GMT-0500</timezone_offset>
由于也有偏移量,因此可以使用DateTimeOffset.Parse()获取DateTimeOffset。从那里,您可以读取DateTime属性。输出dt变量将具有2014-11-17 7:00:00 PM,DateTimeKind属性设置为“未指定”
var dtOffset = DateTimeOffset.Parse("2014-11-17 19:00:00-0500", CultureInfo.InvariantCulture);
var dt = dtOffset.DateTime;
DateTimeOffset代表一个时间点。通常,它相对于UTC。因此,最初解析您拥有的字段是自然的结构。
如果要在UTC中引用相同的日期时间,则可以使用它。在这里,输出dt变量将在2014-11-18 12:00:00 AM上将DateTimeKind属性设置为“ Utc”
var dt = DateTime.Parse("2014-11-17 19:00:00-0500", CultureInfo.InvariantCulture).ToUniversalTime();
如果您没有偏移量,而只有timeZoneId,您仍然可以这样做,但是您需要NodaTime。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句