gpt4 book ai didi

java - 如何从时区字符串 ID 和纪元实例化 Joda DateTime

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:13:53 25 4
gpt4 key购买 nike

我正在查看 Joda Time图书馆。我想弄清楚如何在给定纪元时间戳和时区的情况下构造 DateTime 对象。我希望这能让我在那个时区找到那个纪元时间的星期几、星期几等。但是我不确定如何将 DateTimeZone 传递给 DateTime 构造函数。

import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.joda.time.Instant;

public class TimeZoneTest {

public static void main (String[] args) {

long epoch = System.currentTimeMillis()/1000;

DateTimeZone tz = new DateTimeZone( "America/New_York" );

DateTime dt = new DateTime( epoch, tz );

System.out.println( dt );
}

}

我尝试了上面“America/New_York”的硬编码示例,但它是从编译器那里得到的。我做错了什么?

$ javac -cp "joda-time-2.2.jar:." TimeZoneTest.java
TimeZoneTest.java:12: org.joda.time.DateTimeZone is abstract; cannot be instantiated
DateTimeZone tz = new DateTimeZone( "America/New_York" );
^
1 error

最佳答案

要从 ID 获取时区,您可以使用 DateTimeZone.forID :

DateTimeZone zone = DateTimeZone.forID("America/New_York");

顺便说一句,我不认为“纪元”是您变量的好名字——它实际上是“自 Unix 纪元以来的秒数”。另外,我不明白你为什么要除以 1000... the relevant constructor for DateTime采用时区和自 Unix 纪元以来的毫秒...因此您可以直接传递从 System.currentTimeMillis() 返回的值。

关于java - 如何从时区字符串 ID 和纪元实例化 Joda DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15711005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com