无法将字符串转换为 DateTimeOffset
Can't convert string to DateTimeOffset
我正在尝试将以下字符串转换为 DateTimeOffset
20201106 13:09:14.510952 +0000
我正在使用以下格式尝试转换它
DateTimeOffset dtofResult = new DateTimeOffset();
DateTimeOffset.TryParseExact("20201106 13:09:14.510952 +0000", @"yyyyMMdd HH\:mm\:ss\FFFFFF zzz\s", CultureInfo.InvariantCulture, DateTimeStyles.None, out dtofResult);
这总是返回默认值而不是转换后的字符串。
我不确定这是格式问题还是文化变体问题?
非常感谢对此问题的任何帮助!
您的输入字符串和格式字符串之间有两处不匹配。
第一个不匹配是一个简单的拼写错误。 ss
和 FFFFFF
之间缺少格式字符串 .
。结果是您有 \F
文字 F
字符,而您的输入没有。要解决此问题,请在 \
和 F
之间插入 .
。
不过,您实际上并不需要对点进行转义,因为它不会被解释为任何特殊内容。它没有伤害,但也不会为您增加任何价值。您可以删除反斜杠。
第二个不匹配是末尾的 \s
。这是在尝试匹配输入末尾的 s
字符,而您的输入也没有。从格式字符串的末尾删除 \s
。
你试图在那里实现的目标不清楚。我最好的猜测是您想忽略尾随空格,因为它看起来像空格字符的正则表达式模式。如果这是您想要的,请传递 DateTimeStyles.AllowTrailingWhite
而不是 DateTimeStyles.None
.
应用这些更正后,格式字符串变为:
@"yyyyMMdd HH\:mm\:ss.FFFFFF zzz"
我正在尝试将以下字符串转换为 DateTimeOffset
20201106 13:09:14.510952 +0000
我正在使用以下格式尝试转换它
DateTimeOffset dtofResult = new DateTimeOffset();
DateTimeOffset.TryParseExact("20201106 13:09:14.510952 +0000", @"yyyyMMdd HH\:mm\:ss\FFFFFF zzz\s", CultureInfo.InvariantCulture, DateTimeStyles.None, out dtofResult);
这总是返回默认值而不是转换后的字符串。
我不确定这是格式问题还是文化变体问题?
非常感谢对此问题的任何帮助!
您的输入字符串和格式字符串之间有两处不匹配。
第一个不匹配是一个简单的拼写错误。 ss
和 FFFFFF
之间缺少格式字符串 .
。结果是您有 \F
文字 F
字符,而您的输入没有。要解决此问题,请在 \
和 F
之间插入 .
。
不过,您实际上并不需要对点进行转义,因为它不会被解释为任何特殊内容。它没有伤害,但也不会为您增加任何价值。您可以删除反斜杠。
第二个不匹配是末尾的 \s
。这是在尝试匹配输入末尾的 s
字符,而您的输入也没有。从格式字符串的末尾删除 \s
。
你试图在那里实现的目标不清楚。我最好的猜测是您想忽略尾随空格,因为它看起来像空格字符的正则表达式模式。如果这是您想要的,请传递 DateTimeStyles.AllowTrailingWhite
而不是 DateTimeStyles.None
.
应用这些更正后,格式字符串变为:
@"yyyyMMdd HH\:mm\:ss.FFFFFF zzz"