use*_*034 3 c# string datetime
我在JavaScript中有日期对象,它给了我:"Wed Oct 01 2014 00:00:00 GMT+0200"
;
我尝试解析它,但我得到一个例外:
string Date = "Wed Oct 01 2014 00:00:00 GMT+0200";
DateTiem d = DateTime.ParseExact(Date,
"ddd MM dd yyyy HH:mm:ss GMTzzzzz",
CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
MM
格式说明是2
从数字的月份数01
来12
.
您需要使用MMM
格式说明符代替月份的缩写名称.
对于您而言+0200
,您需要使用具有时区信息的K
格式说明符而不是zzzzz
.
而你需要使用单引号的GMT
一部分,'GMT'
将其指定为文字字符串分隔符.
string s = "Wed Oct 01 2014 00:00:00 GMT+0200";
DateTime dt;
if(DateTime.TryParseExact(s, "ddd MMM dd yyyy HH:mm:ss 'GMT'K",
CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
Console.WriteLine(dt);
}
Run Code Online (Sandbox Code Playgroud)
建议不要使用任何z
格式说明符进行DateTime
解析.因为它们表示本地时区UTC值的有符号偏移量,并且此说明符不影响DateTime.Kind
属性.并且DateTime
不保留任何偏移值.
这就是为什么这个说明符适合于DateTimeOffset
解析.