我正在与以这种格式向我回复日期的网络服务进行交谈
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);
如果我从- 0500
参数中删除- zzzz
和ParseExact
,它就可以了。不知道我在时区上做错了什么。任何方向将不胜感激。我尝试了不同的" z"并删除" - "也假设它让人感到困惑。
答案 0 :(得分:5)
您只是,无法。
您的输入不是可以解析为DateTime
的有效字符串,除非您在其中执行了一些字符串操作。你的偏移部分必须有半冒号(:
)来解析它。
此外,您需要使用hh
specifier(或更喜欢HH
),因为您的小时部分有一个前导零。
我只能想到一种方法,获取空白的最后一个索引,删除它,在你的小时和分钟偏移之间插入:
,并将其解析为DateTimeOffset
,因为你的字符串有{{ 3}}部分。
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
属性。