如何解析这个 DateTimeOffset?
How to parse this DateTimeOffset?
我得到的 DateTimeOffset 字符串为 "2018-10-16T193850+0200",但我认为它是标准格式的 none。主要是“+0200”部分不标准,因为它缺少冒号。
我必须指定什么格式才能像这样解析 DateTimeOffsets?谢谢!
您可以使用 ParseExact
:
DateTimeOffset offsetDate = DateTimeOffset.ParseExact(
"2018-10-16T193850+0200",
"yyyy-MM-dd'T'HHmmsszzzz",
DateTimeFormatInfo.InvariantInfo,
DateTimeStyles.None);
不幸的是,将 DateTimeInfo.TimeSeparator 设置为空字符串无济于事。
但是你可以使用DateTimeOffset.ParseExact如下:
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 字符串为 "2018-10-16T193850+0200",但我认为它是标准格式的 none。主要是“+0200”部分不标准,因为它缺少冒号。
我必须指定什么格式才能像这样解析 DateTimeOffsets?谢谢!
您可以使用 ParseExact
:
DateTimeOffset offsetDate = DateTimeOffset.ParseExact(
"2018-10-16T193850+0200",
"yyyy-MM-dd'T'HHmmsszzzz",
DateTimeFormatInfo.InvariantInfo,
DateTimeStyles.None);
不幸的是,将 DateTimeInfo.TimeSeparator 设置为空字符串无济于事。
但是你可以使用DateTimeOffset.ParseExact如下:
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' 部分。