目前,要从当地时区1970年开始获得毫秒,我做到了
long localMillis = dateTime.withZone(timeZone).toLocalDateTime()
.toDateTime(DateTimeZone.UTC).getMillis();
Run Code Online (Sandbox Code Playgroud)
这有效,但有更简单的方法吗?
And*_*mee 16
您可以通过存储LocalDateTime1970年1月1日的常量,然后计算该Duration时间点(对于给定时区)和您关注的时刻之间的关系来更清楚,例如:
private static final LocalDateTime JAN_1_1970 = new LocalDateTime(1970, 1, 1, 0, 0);
...
new Duration(JAN_1_1970.toDateTime(someTimeZone), endPointInstantOrDateTime).getMillis();
Run Code Online (Sandbox Code Playgroud)
使用 (joda-time-2.3.jar) org.joda.time.LocalDateTime#toDateTime()#getMillis()。
org.joda.time.format.DateTimeFormatter dtf = org.joda.time.format.DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSS");
org.joda.time.LocalDateTime ldt = dtf.parseLocalDateTime("2014-12-25 12:23:34.567");
System.out.println(ldt);
long delta = ldt.toDateTime().getMillis();
System.out.println(delta);
java.util.Date dt = new java.util.Date(delta);
System.out.println(dt);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34608 次 |
| 最近记录: |