java - 如何获取 GMT 格式的时区表示

标签 java

我们的时区存储在数据库中,如下所示(例如 America/Los_Angeles)。如何从上面获得等效的 GMT 表示(例如 GMT -08:00)

最佳答案

与 GMT 的偏移量(以小时为单位):

import java.util.TimeZone

double offset = TimeZone.getTimeZone("America/Los_Angeles")
    .getRawOffset()/(60*60*1000.0);
// returns 8.0

但是,这会返回原始偏移量。由于夏令时,偏移量会根据时区和日期而变化。要获取特定日期的偏移量,请使用:

import java.util.TimeZone
import java.util.Calendar

Calendar cal = Calendar.getInstance();
double offset = TimeZone.getTimeZone("America/Los_Angeles")
    .getOffset(cal.getTimeInMillis())/(60*60*1000.0); 
// returns -7.0 for 22/sep/2010

关于java - 如何获取 GMT 格式的时区表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3768162/

相关文章:

java - 如何在多个类(class)之间进行交流?

java - 如何使所有 JFrame 都可以访问 ArrayList 以及如何更新它?

java - 什么是科学记数法以及为什么在 Java 中科学记数法要重复打印?

java - Clojure 转换器与 Java 中流的中间操作的概念相同吗?

java - 从方法中获取实例

java - 编译java程序filenotfound异常

java - 如何减少 Java 的抖动?

java - 脚本手动运行,但设置为 crontab 时失败

java - 空指针异常

java - 将 Runnable 转换为 Supplier