将日期时间字符串转换为原始时区的日期时间
本文关键字:日期 时间 时区 原始 转换 字符串 | 更新日期: 2023-09-27 17:51:15
我有一个时间戳,格式为:
20110316 11:03:22.276919 -0400s
顺便说一句,有人知道这个日期时间后面的s是什么吗?
我正试图将其转换为它最初来自时区的datetime对象。但是执行以下转换:
DateTime.ParseExact(source, "yyyyMMdd HH:mm:ss.FFFFFF zzzz''s", CultureInfo.CurrentCulture)
自动转换为我的本地时区。
我期望的是我的日期时间中的11:03am的时间,但是由于我在这个时间戳后面2小时的时区,因此转换返回9:03am。除了执行字符串截断以忽略时区之外,是否有一种方法可以解析日期,同时将其保留在其来自的时区中?
使用DateTimeOffset
DateTimeOffset dto = DateTimeOffset.ParseExact("20110316 11:03:22.276919 -0400s", @"yyyyMMdd HH':mm':ss'.FFFFFF zzz's", null);
Console.WriteLine(dto.DateTime);
您需要在转换中设置CultureInfo的确切来源。
交货。//if its from US then cultureInfo is like
CultureInfo us = new CultureInfo("en-US");
DateTime.ParseExact(source, "yyyyMMdd HH:mm:ss.FFFFFF zzzz''s", us)