And*_*ose 10 java java-8 java-time
我有以下内容DateTimeFormatter.
DateTimeFormatter DATE_TIME_FORMATTER =
DateTimeFormatter.ofPattern("MM/dd/yyyy 'at' hh:mm:ss a zzzz");
Run Code Online (Sandbox Code Playgroud)
我用它来格式化ZonedDateTime这样:
ZonedDateTime disableTime = Instant.now()
.plus(Duration.ofDays(21))
.atZone(ZoneId.ofOffset("UTC", ZoneOffset.ofHours(-5)));
System.out.println(DATE_TIME_FORMATTER.format(disableTime));
Run Code Online (Sandbox Code Playgroud)
我希望这能输出格式化的日期字符串,如下所示:
2015年9月16日美国东部时间下午01:15:45
但是获得输出的是:
2015年9月16日下午01:15:45 UTC-05:00
无论我是否使用z,zz,zzz,或zzzz在模式,它总是在得到上面的格式输出.
是否有不同的方式来创建ZonedDateTime将给我所需的输出,或者我在模式中做错了什么?
根据DateTimeFormatter 文档,O应该用于显示本地化的区域偏移量,例如UTC-05:00,z应该用于显示时区名称,例如Eastern Daylight Time,或EDT.
这是因为您使用匿名UTC偏移量.与命名尝试ZoneId,而不是
ZonedDateTime disableTime = Instant.now()
.plus(Duration.ofDays(21))
.atZone(ZoneId.of("Africa/Nairobi"));
Run Code Online (Sandbox Code Playgroud)
打印(" Ora dell'Africa orientale "是意大利本地化名称)
09/16/2015 at 09:34:44 PM Ora dell'Africa orientale
Run Code Online (Sandbox Code Playgroud)
您可以获取用于存储和检索用户首选项的可用名称列表
Set<String> ids = ZoneId.getAvailableZoneIds();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2250 次 |
| 最近记录: |