java - 将 DateTimeZone 转换为 UTC 偏移量

标签 java jodatime

给定一个 DateTimeZone,我可以像这样获取 TimeZone 的名称和 ID:

DateTimeZone timeZone = new DateTimeZone("America/Chicago");

// Prints "America/Chicago"
System.out.println(timeZone.getID());

// Prints "CDT" (Since it is daylight savings time now)
System.out.println(timeZone.getNameKey(DateTimeUtils.currentTimeMillis()));

// Prints "Central Daylight Time"
System.out.println(timeZone.getName(DateTimeUtils.currentTimeMillis()));

一切都很好,但我真的很想将时区作为 UTC 偏移量。在这种情况下,UTC 偏移量看起来像 -05:00

我如何使用 Joda-Time 做到这一点?

最佳答案

一个纯 Joda 解决方案如下所示:

int offsetMillis =
    DateTimeZone.forID("America/Chicago").getOffset(DateTimeUtils.currentTimeMillis());
DateTimeZone zone = DateTimeZone.forOffsetMillis(offsetMillis);
String utcOffset = zone.toString();
System.out.println(utcOffset); // output: -05:00

关于java - 将 DateTimeZone 转换为 UTC 偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26597153/

相关文章:

java - 我在 Java 中做错了什么?

java - 排除文件过滤器

Java:如何计算从时间开始的天数(带时区)

java - Joda DateTime 等于 vs isEqual

jodatime - Joda Time : DateTimeFormatter : beginning of a day

java - JFileChooser 的文件过滤器

java - 在数字流中查找 AP 三胞胎的数量

Java LDAP - 确定用户是否在给定组中?

java - Joda Time 的 Period.getMillis 返回不准确的数字

java - 使用 Joda-Time 的区域设置的一周开始时间