我被告知我将以格式收到日期时间:
yyyy-mm-ddThh:mm:sss
它来自Java Web服务,即使我试图得到最后三个“sss”的重点,它似乎是最终格式而不是拼写错误。
所以我试图用.Net(实际上就是C#)来解析它。
var s = "2014-09-16T12:17:057";
var d = DateTime.ParseExact(s, "yyyy-MM-ddThh:mm:sss", CultureInfo.InvariantCulture);
但它引发了异常
Sting未被识别为有效的DateTime
谢谢,
更新:
正如所怀疑的,第三次魅力和我已被确认,实际格式应为
yyyy-MM-ddTHH:mm:ss
答案 0 :(得分:5)
查看Java date format documentation,我相信您将在字符串的秒部分中通过000
收到059
。此外,Java似乎无法提供十分之一秒的能力。
您指定的符号字母数也决定了格式。
号码|需要最小位数|较短的数字用零填充
因此将其解析为ssf
将导致秒的一部分时间除以10。
如果是这种情况,那么您需要使用的C#格式字符串为yyyy-MM-ddTHH:mm:0ss
。
那就是说,你的" Java格式字符串"包含mm
的月份和分钟以及hh
小时(12小时),没有AM / PM说明符的指示,那么谁知道它有多可靠?