C# 日期时间偏移量
我必须用日期解析csv(我知道这些日期是utc) 在我的方法中,我像这样解析它们C# 日期时间偏移量,c#,C#,我必须用日期解析csv(我知道这些日期是utc) 在我的方法中,我像这样解析它们 DateTimeOffset utcTime1 = DateTimeOffset.ParseExact(csv[0].Trim(), "yyyyMMdd HH:mm:ss:fff", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces); 但结果不是utc,而是我的线程时间 1/2/2020 7:11:43 AM +01:00 1/
DateTimeOffset utcTime1 = DateTimeOffset.ParseExact(csv[0].Trim(), "yyyyMMdd HH:mm:ss:fff", CultureInfo.InvariantCulture, DateTimeStyles.AllowWhiteSpaces);
但结果不是utc,而是我的线程时间
1/2/2020 7:11:43 AM +01:00
1/2/2020 7:11:45 AM +01:00
1/2/2020 7:11:46 AM +01:00
1/2/2020 7:11:46 AM +01:00
1/2/2020 7:11:47 AM +01:00
所以我试了一下:
DateTimeOffset utcTime1 = DateTimeOffset.ParseExact(csv[0].Trim(), "yyyyMMdd HH:mm:ss:zzz", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
但是它抛出了一个错误无效的日期时间?您在第二个字符串中提供了毫秒的错误格式字符串(
zzz
,它是从UTC偏移的):
“fff”日期和时间值中的毫秒
在我的机器上解析到
02-Jan-20 7:00:12 AM+00:00
。问题在于第二个“yyyyMMdd HH:mm:ss:zzz”中提到的输入格式。
zzz
表示从UTC偏移的小时和分钟
但实际上这里的值是毫秒,应该是fff
指定的值
DateTimeOffset utcTime1 = DateTimeOffset.ParseExact("20200102 07:00:12:342", "yyyyMMdd HH:mm:ss:fff", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
Console.WriteLine(utcTime1);
因此,正确的格式应该是“yyyyMMdd HH:mm:ss:fff”
这给了我
1/2/2020 7:00:12 AM+00:00
哇,我似乎在dd和HH之间添加了2个空格,与您的演员阵容相比,现在工作正常,感谢fff没有工作nether@Zwan我很乐意帮忙!是的,主要问题是,由于我的格式错误,我被迫使用allowWhiteSpace
DateTimeOffset.ParseExact("20200102 07:00:12:342", "yyyyMMdd HH:mm:ss:fff", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal)
DateTimeOffset utcTime1 = DateTimeOffset.ParseExact("20200102 07:00:12:342", "yyyyMMdd HH:mm:ss:fff", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
Console.WriteLine(utcTime1);