关于datetime:时区java:德克萨斯州圣安东尼奥市

Time zone java : San Antonio, Texas

嗨,我想设置德克萨斯州圣安东尼奥的时区。有些请告诉我如何在我的Java代码中设置相同。

我希望它的格式与美国/纽约有些相似

目前我正在使用此代码

1
TimeZone.getTimeZone("America/Denver");

但"美国/丹佛"似乎并不适合德克萨斯州圣安东尼奥市


对于圣安东尼奥,你应该使用TimeZone.getTimeZone("US/Central")

如果你真的需要使用"America/"格式,那么离圣安东尼奥市最近的城市是"America/Chicago"

您可以使用它来获取US / Central的所有可用特定ID的列表:

1
String[] values = TimeZone.getAvailableIDs(TimeZone.getTimeZone("US/Central").getRawOffset());

然后,仔细检查:

http://www.timeanddate.com/time/zones/


圣安东尼奥→America/Chicago

圣安东尼奥的IANA时区标识符America/Chicago,如Time.is所示。

使用java.time

处理日期时间的现代方法是使用java.time类。

Instant类表示UTC时间轴上的一个时刻,分辨率为纳秒。

1
Instant instant = Instant.now();  // Current moment in UTC.

应用ZoneId获取ZonedDateTime

1
2
ZoneId z = ZoneId.of("America/Chicago" );
ZonedDateTime zdt = instant.atZone( z );

避免使用3-4个字母区域缩写

continent/region的格式指定正确的时区名称,例如America/MontrealAfrica/CasablancaPacific/Auckland

切勿使用3-4字母缩写,例如ESTISTPST,因为它们不是真正的时区,不是标准化的,甚至不是唯一的(!)。

时区名称通常是城市。这个命名并不意味着只是那个城市。这种命名只是标记居民具有相同时区规则的共享历史的区域的一种方式。如果整个土地一直由人们共享同一套规则,那么该地区可能会非常大。

关于java.time

java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧遗留日期时间类,例如java.util.DateCalendar和& SimpleDateFormat

现在处于维护模式的Joda-Time项目建议迁移到java.time类。

要了解更多信息,请参阅Oracle教程。并搜索Stack Overflow以获取许多示例和解释。规范是JSR 310。

从哪里获取java.time类?

  • Java SE 8,Java SE 9及更高版本

    • 内置。
    • 带有捆绑实现的标准Java API的一部分。
    • Java 9增加了一些小功能和修复。
  • Java SE 6和Java SE 7

    • 许多java.time功能都被反向移植到Java 6& 7在ThreeTen-Backport。
  • Android的

    • ThreeTenABP项目特别适用于Android的ThreeTen-Backport(如上所述)。
    • 请参见如何使用ThreeTenABP ....

ThreeTen-Extra项目使用其他类扩展了java.time。该项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的类,例如IntervalYearWeekYearQuarter等。


相关主题:
如何使用Java处理日历时区?

圣安东尼奥时区:
标准时区:UTC / GMT -6小时
夏令时:+1小时
当前时区偏移:UTC / GMT -5小时
时区缩写:CDT - 中部日光时间

编辑:
这个链接在美国/纽约格式方面更好:Java中的时区


我完全用Google搜索了你的问题并得到了这个:
http://www.few.vu.nl/~eliens/documents/java/jdk1.2-docs/docs/api/java/util/TimeZone.html

您还可以使用getTimeZone和时区ID获取TimeZone。例如,太平洋标准时区的时区ID是"PST"。因此,您可以使用以下命令获取PST TimeZone对象:
用这个:

1
 TimeZone tz = TimeZone.getTimeZone("PST");