将Javascript日期解析为C#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);
MM
格式说明符是从01
到12
2
位数月份数。
您需要使用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); }
对于DateTime
解析,不建议使用任何z
格式说明符 。 因为它们表示本地时区UTC值的有符号偏移量 ,并且此说明符不影响DateTime.Kind
属性 。 并且DateTime
不保留任何偏移值。
这就是为什么这个说明符适合于DateTimeOffset
解析。