我发现很多关于从各种格式解析日期时间的问题,但是无法找到解决我的转换日期时间字符串的问题的解决方案,包括毫秒和时区。
我的输入就像
20110713014230.685 + 0000
这种格式就像:
yyyyMMddHHmmss.fff + ZZZZ
我尝试使用/不使用+
和.
的DateTime.ParseExact和DateTimeOffset.ParseExact,但没有任何效果。
发现类似的问题Here,但它不适合我。
我得到了例外
未处理的类型' System.FormatException'发生在mscorlib.dll
答案 0 :(得分:3)
将格式更改为yyyyMMddHHmmss.fffzzzzz
,修改the documentation," zzz"自定义格式说明符表示本地操作系统时区的签名偏移量。
答案 1 :(得分:0)
DateTime date;
var dateString = "20110713014230.685+0000";
dateString = dateString.Substring(0, 21) + ':' + dateString.Substring(21, 2);
DateTime.TryParseExact(dateString, "yyyyMMddHHmmss.fffzzz", CultureInfo.InvariantCulture, DateTimeStyles.None, out date);
答案 2 :(得分:0)
使用dateTimeString = 20110713014230.685 + 0000,以下代码应可为您提供所需的信息:
if (!DateTimeOffset.TryParseExact(dateTimeString,
"yyyyMMddHHmmss.fffzzz",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out var dateTimeWithOffset)){}
以下是dateTimeWithOffset var的中间输出:
{7/13/2011 1:42:30 AM +00:00}
ClockDateTime: {7/13/2011 1:42:30 AM}
Date: {7/13/2011 12:00:00 AM}
DateTime: {7/13/2011 1:42:30 AM}
Day: 13
DayOfWeek: Wednesday
DayOfYear: 194
Hour: 1
LocalDateTime: {7/12/2011 9:42:30 PM}
Millisecond: 685
Minute: 42
Month: 7
Offset: {00:00:00}
Second: 30
Ticks: 634461181506850000
TimeOfDay: {01:42:30.6850000}
UtcDateTime: {7/13/2011 1:42:30 AM}
UtcTicks: 634461181506850000
Year: 2011
_dateTime: {7/13/2011 1:42:30 AM}
_offsetMinutes: 0