这是 ISO 8601 中的日期时间时刻示例(以毫秒为单位):
2024-03-02T17:13:07.123Z
如果毫秒部分不是由 3 位数字组成,而是由较少的数字组成(毫秒部分小于 100 毫秒),那么正确的日期时间书写方式是什么。
例如,如果毫秒数是15,那么整秒过去了15毫秒,那么字符串应该怎么写?
2024-03-02T17:13:07.15Z
或
2024-03-02T17:13:07.015Z
?
如果毫秒部分等于 0,有很多种可能的写法,但正确的方法是什么?
2024-03-02T17:13:07.0Z
或
2024-03-02T17:13:07.Z
或
2024-03-02T17:13:07.000Z
?
您能否引用文档中说明如何处理这种情况的相关部分?
例如,如果毫秒数是 15,那么已经过了 15 毫秒 整秒,字符串应该怎么写?
标准表示为
2024-03-02T17:13:07.015Z
。
使用Java语言的演示:
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
public class Main {
public static void main(String[] args) {
// The second last parameter specifies nanoseconds
OffsetDateTime odt = OffsetDateTime.of(2024, 3, 2, 17, 13, 7, 15000000, ZoneOffset.UTC);
System.out.println(odt);
}
}
输出:
2024-03-02T17:13:07.015Z
如果毫秒部分等于零,则有多种可能 怎样写,但是正确的写法是什么?
标准表示为
2024-03-02T17:13:07Z
。
这是格式消除歧义的地方,例如如果您使用
yyyy-MM-dd'T'HH:mm:ss.SSS
作为格式,您的日期时间对象将被打印为 2024-03-02T17:13:07.000Z
。格式只是表示特定用例的对象的一种方式,但表示不会更改值,例如您可以根据您的特定用例将 5
写为 5.0
、5.00
、5.000
,并且对于每个用例,该值将保留 5
。
使用Java语言的演示:
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
// The second last parameter specifies nanoseconds
OffsetDateTime odt = OffsetDateTime.of(2024, 3, 2, 17, 13, 7, 0, ZoneOffset.UTC);
// Print it in the default format
System.out.println(odt);
// ######### Formatted output #########
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS");
System.out.println(odt.format(formatter));
}
}
输出:
2024-03-02T17:13:07Z
2024-03-02T17:13:07.000
从 Trail:日期时间了解有关现代日期时间 API 的更多信息。