java - 如何在 Java 8 时间库中获取 3 个字符的时区显示名称?
问题描述
java.util.TimeZone
当 DST 处于活动状态时,我可以按如下方式打印 EDT :
TimeZone.getTimeZone("America/New_York").getDisplayName(true, TimeZone.SHORT) -> Returns "EDT"
我想获得与 Java 8 的新时间库相同的 3 个字符。我试试这个,但我只得到 ET:
ZonedDateTime.now().getZone().getDisplayName(TextStyle.SHORT, Locale.US) -> Returns "ET"
根据 DST 状态,有没有办法在新库中获取 3 个字符的显示名称(EST、EDT、PST、PDT 等)?
解决方案
你可以使用DateTimeFormatter
这种方式
ZonedDateTime.now().format(DateTimeFormatter.ofPattern("z"))
ZoneId
在你ZonedDateTime
没有准确的信息。
推荐阅读
- c# - 继承类后,不能保留我的构造函数
- hadoop - 将大文件从 HDFS 复制到本地时出错
- c# - 如何将json值传递给节点js中的存储过程
- c++ - C ++中的重复符号函数
- python - 如何在 XML Python 中基于同一父级中的同一标记连接元素?
- django - 如何配置我的模型以使我生成的 Django 迁移不会导致错误?
- powershell - 用于获取在 Active Directory 的属性编辑器中具有 houseIdentifier 值的前 100 个用户的 Powershell 脚本
- swift - 从地址获取坐标的完成处理程序
- android - 如何在颤动的按钮顶部添加标签
- mysql - 我收到错误代码:1064 sintaxys mysql workbench