Java 爪哇时区:德克萨斯州圣安东尼奥

Java 爪哇时区:德克萨斯州圣安东尼奥,java,datetime,timezone,Java,Datetime,Timezone,您好,我想为德克萨斯州圣安东尼奥市设置时区。请告诉我如何在Java代码中设置相同的时区 我希望它的格式有点像美国/纽约 目前我正在使用这个代码 TimeZone.getTimeZone("America/Denver"); 但是“美国/丹佛”似乎不是德克萨斯州圣安东尼奥市的正确时区我完全用谷歌搜索了你的问题,得到了以下信息: 您还可以使用getTimeZone和时区ID获取时区。例如,太平洋标准时区的时区ID为“PST”。因此,您可以通过以下方式获得PST时区对象: 使用以下命令: Tim

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

我希望它的格式有点像美国/纽约

目前我正在使用这个代码

TimeZone.getTimeZone("America/Denver");

但是“美国/丹佛”似乎不是德克萨斯州圣安东尼奥市的正确时区

我完全用谷歌搜索了你的问题,得到了以下信息:

您还可以使用getTimeZone和时区ID获取时区。例如,太平洋标准时区的时区ID为“PST”。因此,您可以通过以下方式获得PST时区对象: 使用以下命令:

 TimeZone tz = TimeZone.getTimeZone("PST");
相关主题:

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

编辑:
对于美国/纽约格式,此链接更好:

对于圣安东尼奥,您应该使用
时区。getTimeZone(“美国/中部”)

如果您确实需要使用
“America/”
格式,离圣安东尼奥美国城最近的是
“America/Chicago”

您可以使用此选项获取US/Central所有可用特定ID的列表:

String[] values = TimeZone.getAvailableIDs(TimeZone.getTimeZone("US/Central").getRawOffset());
然后,再次检查这里:

圣安东尼奥→ <代码>美国/芝加哥 圣安东尼奥的IANA时区标识符为
美国/芝加哥
,如下所示

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

该类表示时间线上的一个时刻,分辨率为

应用
ZoneId
以获取
zoneDateTime

ZoneId z = ZoneId.of( "America/Chicago" );
ZonedDateTime zdt = instant.atZone( z );
避免使用3-4个字母的区域缩写 以
大陆/地区
的格式指定,例如,或
太平洋/奥克兰

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

时区名称通常是一个城市。这个名字并不仅仅是指那个城市。这样的命名仅仅是给一个地区贴上标签的一种方式,该地区的居民有着相同时区规则的共同历史。如果整片土地上都居住着相同规则的人,那么这个区域可能会相当大


关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

从哪里获得java.time类

  • ,及以后
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 该项目专门为Android采用了ThreeTen Backport(如上所述)

该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,例如、、和。

另一方面,如果您查看最近的文档,您会看到:注意,缩写的支持仅用于JDK 1.1.x兼容性,应该使用全名。那么texas@Leo HolandaFYI的php时区呢,
java.util.TimeZone
是旧的日期时间类之一,现在已经被java.time类取代,成为遗留类。该类被and.Just-upvoted@BasilBourque-answer所取代,它比我的答案更完整、更新。
ZoneId z = ZoneId.of( "America/Chicago" );
ZonedDateTime zdt = instant.atZone( z );