我需要打印类似
"Fri Feb 24 2023 13:57:11 GMT+00:00"
的日期
与
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("E MMM d u H:m:s O", Locale.ENGLISH);
OffsetDateTime odt = OffsetDateTime.ofInstant(date.toInstant(), ZoneOffset.of("+05:30"));
String strDate = odt.format(dtf);
我可以打印它像
"Fri Feb 24 2023 19:27:11 GMT+5:30".
但是如果我使用
OffsetDateTime odt = OffsetDateTime.ofInstant(date.toInstant(), ZoneOffset.of("+00:00"));
它打印为
"Fri Feb 24 2023 13:57:11 GMT"
没有+00:00
我怎么能在 java 中添加它?
DateTimeFormatter
已经为您提供了模式 O
来处理局部区域偏移。
演示:
class Main {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
calendar.set(2023, 1, 24, 13, 57, 11);
Date date = calendar.getTime();
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("E MMM d u H:m:s Oxxx", Locale.ENGLISH);
ZonedDateTime zdt = ZonedDateTime.ofInstant(date.toInstant(), ZoneOffset.UTC);
String strDate = zdt.format(dtf);
System.out.println(strDate);
}
}
输出:
Fri Feb 24 2023 13:57:11 GMT+00:00
了解更多关于现代日期时间 API