C# 如何解析此DateTimeOffset?
我得到的DateTimeOffset字符串是“2018-10-16T193850+0200”,但我认为它不是标准格式。主要是“+0200”部分不标准,因为它缺少冒号 我必须指定什么格式来解析这样的DateTimeOffset?谢谢大家! 您可以使用: 阅读:您可以使用: 阅读:不幸的是,设置为空字符串没有帮助 但您可以按如下方式使用:C# 如何解析此DateTimeOffset?,c#,.net,date,datetimeoffset,C#,.net,Date,Datetimeoffset,我得到的DateTimeOffset字符串是“2018-10-16T193850+0200”,但我认为它不是标准格式。主要是“+0200”部分不标准,因为它缺少冒号 我必须指定什么格式来解析这样的DateTimeOffset?谢谢大家! 您可以使用: 阅读:您可以使用: 阅读:不幸的是,设置为空字符串没有帮助 但您可以按如下方式使用: DateTimeOffset date = DateTimeOffset.ParseExact("2018-10-16T193850+0200", "yyyy'-
DateTimeOffset date = DateTimeOffset.ParseExact("2018-10-16T193850+0200", "yyyy'-'MM'-'dd'T'HH''mm''ss''K", CultureInfo.InvariantCulture.DateTimeFormat);
诀窍是指定“K”格式说明符,以便接受各种偏移量。除上述日期字符串外,还将正确解析以下内容:
“2018-10-16T193850Z”-UTC
“2018-10-16T193850”-当地时间
编辑我的答案与Tim Schmelter的答案相似,除了“K”部分。不幸的是,设置为空字符串没有帮助 但您可以按如下方式使用:
DateTimeOffset date = DateTimeOffset.ParseExact("2018-10-16T193850+0200", "yyyy'-'MM'-'dd'T'HH''mm''ss''K", CultureInfo.InvariantCulture.DateTimeFormat);
诀窍是指定“K”格式说明符,以便接受各种偏移量。除上述日期字符串外,还将正确解析以下内容:
“2018-10-16T193850Z”-UTC
“2018-10-16T193850”-当地时间
编辑我的答案与Tim Schmelter的答案相似,除了“K”部分。将DateTimeOffset.ParseExact(“2018-10-16T193850+0200”,“yyyy-MM-dd'HHmmsszzzz”,CultureInfo.InvariantCulture)不够?@Bas:是的,因为它是相同的。如果你调用重载
ParseExact
将调用我上面使用的重载,并传递DateTimeStyles.None
作为第四个参数。DateTimeOffset.ParseExact(“2018-10-16T193850+0200”,“yyyy-MM-dd'HHMMSSZZZZZ”,CultureInfo.InvariantCulture)是否不够?Bas:是的,因为它是相同的。如果调用重载,则ParseExact
将调用我上面使用的重载,并传递DateTimeStyles.None
作为第四个参数。我认为这是非标准的,因为日期已展开(带有连字符),但时间和时间偏移量是基本的(缺少冒号)。我认为这是非标准的,因为日期已展开(带有连字符)但是时间和时间偏移是基本的(缺少冒号)。