Java Android解析日期问题
我从服务器收到了非常奇怪的日期格式。它看起来2017-03-07T15:08:01.513544Z,奇怪的部分是“Z”之前的最后六个字符,因为我在服务器的大多数响应中只看到了三个毫秒符号。我正试图用带有掩码的Java Android解析日期问题,java,android,simpledateformat,Java,Android,Simpledateformat,我从服务器收到了非常奇怪的日期格式。它看起来2017-03-07T15:08:01.513544Z,奇怪的部分是“Z”之前的最后六个字符,因为我在服务器的大多数响应中只看到了三个毫秒符号。我正试图用带有掩码的SimpleDateFormat解析它,该掩码yyyy-MM-dd'HH:MM:ss.SSS'Z',它可以在除API16(4.1)之外的所有android版本上运行。在developer.android.com中,我看到了类似于.SSSXXX的掩码示例,但结果我出现了错误,因为系统不知道符号
SimpleDateFormat
解析它,该掩码yyyy-MM-dd'HH:MM:ss.SSS'Z',它可以在除API16(4.1)之外的所有android版本上运行。在developer.android.com中,我看到了类似于.SSSXXX的掩码示例,但结果我出现了错误,因为系统不知道符号“X”那么,你有没有遇到过类似的日期格式?答案很简单,但不仅仅是答案
Instant instantFromServer = Instant.parse("2017-03-07T15:08:01.513544Z");
要在Android上使用此功能,您需要获得ThreeTenABP库。它包含JSR-310中描述的日期和时间类,Instant
就是其中之一。请参阅下面的链接
那么,你有没有遇到过类似的日期格式?
01.513544
表示1.513544秒,或1秒513毫秒544微秒,或1秒51354000纳秒。有很多方法可以表达它。我曾经使用过IBM大型机,它通常会给我们提供微秒精度的时间戳,也就是说,每秒6位小数。我想,随着计算机的速度越来越快,精度要求也越来越严格,因此我们将来可能会看到更多这样的情况。虽然我相信SimpleDateFormat
无法处理这些问题,但JSR-310中的类通常具有纳秒精度,并且可以直接解析具有可变小数数的字符串
链接