Android解析日期问题

时间:2017-05-17 11:01:32

标签: java android simpledateformat

我从服务器收到了非常奇怪的日期格式。它看起来像 2017-03-07T15:08:01.513544Z ,奇怪的部分是“Z”之前的六个最后一个字符,因为我在服务器的大多数响应中只看到了三个毫秒符号。我试图使用掩码 yyyy-MM-dd'T'HH:mm:ss.SSS'Z'SimpleDateFormat解析它,它适用于所有Android版本,除了 api 16(4.1)。在 developer.android.com 中,我看到了像.SSSXXX这样的掩码示例,但结果我有错误,因为系统不知道符号'X'。 那么,你有没有遇到类似的日期格式?

1 个答案:

答案 0 :(得分:1)

答案很简单,但需要的不仅仅是答案。

    Instant instantFromServer = Instant.parse("2017-03-07T15:08:01.513544Z");

要在Android上使用此功能,您需要获取ThreeTenABP库。它包含JSR-310中描述的日期和时间类,其中Instant是一个。请参阅以下链接。

  

那么,你有没有遇到类似的日期格式?

01.513544表示1.513544秒,或1秒513毫秒544微秒,或1秒513544000纳秒。有很多方法可以实现。我曾与IBM大型机一起工作,这些大型机经常给我们带有微秒精度的时间戳,即秒数上的6位小数。我想随着计算机越来越快,准确性要求越来越严格,所以我们将来可能会看到更多这些。虽然我认为SimpleDateFormat无法处理这些,但JSR-310中的类通常具有纳秒精度,并且解析具有可变小数位数的字符串。

链接