在C#中解析的Java日期时间格式

时间:2014-09-16 14:46:31

标签: c# datetime-format

我被告知我将以格式收到日期时间:

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

1 个答案:

答案 0 :(得分:5)

查看Java date format documentation,我相信您将在字符串的秒部分中通过000收到059。此外,Java似乎无法提供十分之一秒的能力

  

您指定的符号字母数也决定了格式。

     

号码|需要最小位数|较短的数字用零填充

因此将其解析为ssf将导致秒的一部分时间除以10。

如果是这种情况,那么您需要使用的C#格式字符串为yyyy-MM-ddTHH:mm:0ss

那就是说,你的" Java格式字符串"包含mm的月份和分钟以及hh小时(12小时),没有AM / PM说明符的指示,那么谁知道它有多可靠?