vli*_*o20 0 java date jodatime
我正在尝试使用12:00的小时初始化Joda-Time DateTime对象,这是我如何做到这一点:
public static final long MINUTE = 60 * 1000;
public static final long HOUR = 60 * MINUTE;
DateTime defaultDate = new DateTime(HOUR * 12);
System.out.print("the hour is: " + defaultDate.getHourOfDay()) // getting 14
Run Code Online (Sandbox Code Playgroud)
为什么我得到14而不是12?也许妈妈没教我怎么读时钟吧?!
你指定自Unix时代以来的数毫秒,即UTC的午夜.
但是,您隐式使用了系统默认时区DateTime,我怀疑在Unix时代,您的系统时区是UTC + 2.
如果要使用特定时区,可以在构造函数中传递:
DateTime defaultDate = new DateTime(HOUR * 12, DateTimeZone.UTC);
Run Code Online (Sandbox Code Playgroud)
此外,您可以使用DateTimeConstants.MILLIS_PER_HOUR或使用java.util.concurrent.TimeUnit转换,而不是使用自己的常量.