如何在末尾使用 "Z" 获取我当地时间的 UTC 时间?
How to get UTC time of my local time with "Z" at the end?
我想在 java 中获取 UTC 中的当前时间:
那么,我现在在维也纳,当前当地时间是 16:30:29,当前与 UTC 的时差是 2 小时 我想得到
2022-05-27T14:30:29.813Z
最后有这个Z(表示“祖鲁时间”)。
有了这个
public static String getIsoUtcDate() {
Instant inst = Instant.now();
return inst.toString();
}
我明白了
2022-05-27T14:30:29.813923100Z
如何去除微秒?
我也试过 SimpleDateFormat
,但是最后我无法得到 Z。
您可以使用 OffsetDateTime
并将其偏移量设置为 UTC。然后使用 DateTimeFormatter
格式化它。像这样:
public static String getIsoUtcDate() {
OffsetDateTime nowUtc = OffsetDateTime.now()
.withOffsetSameInstant(ZoneOffset.UTC);
return DateTimeFormatter.ISO_DATE_TIME.format(nowUtc);
}
Instant#truncatedTo
更加灵活。但是对于您的特定情况,有一种更简单的方法。
String output =
Instant
.now()
.truncatedTo( ChronoUnit.MILLIS )
.toString()
;
我想在 java 中获取 UTC 中的当前时间:
那么,我现在在维也纳,当前当地时间是 16:30:29,当前与 UTC 的时差是 2 小时 我想得到
2022-05-27T14:30:29.813Z
最后有这个Z(表示“祖鲁时间”)。
有了这个
public static String getIsoUtcDate() {
Instant inst = Instant.now();
return inst.toString();
}
我明白了
2022-05-27T14:30:29.813923100Z
如何去除微秒?
我也试过 SimpleDateFormat
,但是最后我无法得到 Z。
您可以使用 OffsetDateTime
并将其偏移量设置为 UTC。然后使用 DateTimeFormatter
格式化它。像这样:
public static String getIsoUtcDate() {
OffsetDateTime nowUtc = OffsetDateTime.now()
.withOffsetSameInstant(ZoneOffset.UTC);
return DateTimeFormatter.ISO_DATE_TIME.format(nowUtc);
}
Instant#truncatedTo
String output =
Instant
.now()
.truncatedTo( ChronoUnit.MILLIS )
.toString()
;