我正在与Web服务聊天,该服务以这种格式返回日期
Fri, 02 Oct 2009 05:33:11 - 0500
我一直在尝试将其解析为C#中的DateTime
并获得无效的字符串错误。
字符串未被认为是有效的DateTime
这是代码:
string text = "Fri, 02 Oct 2009 05:33:11 - 0500";
DateTime date = DateTime.ParseExact(text,"ddd, dd MMM yyyy h:mm:ss - zzzzz", null);
如果我从ParseExact
参数中删除- 0500
和- zzzz
,则可以正常工作。不知道我在时区上做错了什么。任何方向都将不胜感激。我尝试了" z"的不同计数,并删除了" - ",也假设这让负面。
您简单地,。
您的输入不是有效的字符串,除非 您进行了一些字符串操作,否则可以解析为DateTime
。和您的偏移部分必须有半结肠(:
)来解析它。
还需要使用hh
指示符(或优选的HH
),因为您的小时零件具有领先的零。
我只能以一种方式思考,获取白空间的最后一个索引,将其删除,在偏移的小时和分钟之间插入:
,然后将其解析为DateTimeOffset
,因为您的字符串具有UTC偏移零件。
string text = "Fri, 02 Oct 2009 05:33:11 -05:00";
var dto = DateTimeOffset.ParseExact(text, "ddd, dd MMM yyyy HH:mm:ss zzz",
CultureInfo.InvariantCulture, DateTimeStyles.None);
现在您有一个DateTimeOffset
作为2.10.2009 05:33:11 -05:00
,可以使用它的DateTime
,LocalDateTime
或UtcDateTime
属性。