java.time.ZoneId
旧的日期时间类现在是遗留的,被 java.time 类取代.
java.time.ZoneId
The old date-time classes are now legacy, supplanted by the java.time classes.
您应该使用 ZoneId.要解析 正确的时区名称,请调用 ZoneId.of.
ZoneId.of ( "Africa/Casablanca" )
ZoneRulesException
的陷阱
如果您传入的名称无法识别,则该方法会抛出 ZoneRulesException.
所以,要找出 Asia/Tokyo的拼写错误a> 作为 Asia/Toyo,陷阱为 ZoneRulesException.
ZoneId z;
try {
z = ZoneId.of ( "Asia/Toyo" ); // Misspell "Asia/Tokyo" as "Asia/Toyo".
} catch ( ZoneRulesException e ) {
System.out.println ( "Oops! Failed to recognize your time zone name. ZoneRulesException message: " + e.getMessage () );
return;
}
ZonedDateTime zdt = ZonedDateTime.now ( z );
查看此代码在 IdeOne.com 上实时运行.
java.time 框架内置于 Java 8 及更高版本.这些类取代了麻烦的旧 legacy 日期时间类,例如 java.util.Date, 日历, &SimpleDateFormat.
Joda-Time 项目,现在在 维护模式,建议迁移到 java.time 类.
要了解更多信息,请参阅 Oracle 教程.并在 Stack Overflow 上搜索许多示例和解释.规范是 JSR 310.
从哪里获得 java.time 类?
- Java SE 8 和 SE 9 及更高版本
- 内置.
- 标准 Java API 的一部分,带有捆绑实现.
- Java 9 添加了一些小功能和修复.
- The ThreeTenABP project adapts ThreeTen-Backport (mentioned above) for Android specifically.
- See How to use ThreeTenABP….
ThreeTen-Extra 项目通过附加类扩展了 java.time.该项目是未来可能添加到 java.time 的试验场.您可以在这里找到一些有用的类,例如 间隔,YearWeek, YearQuarter 和 更多.
这篇关于Java:getTimeZone 不返回默认值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持前端之家!
本文链接:https://www.f2er.com/3175534.html