JodaTime
正在使用裏面的機器時間。所以要找到毫秒,你可以使用一個常數存儲LocalDateTime
參考Jan 1, 1970
(因爲UNIX Time)。
Unix時間,或POSIX時間,是,不計算飛躍 定義爲自1970年1月1日午夜proleptic 協調通用時間(UTC)經過的秒數爲在時間來描述點的系統, 秒。
然後計算您的DateTime之間的差異。
我試過這樣;
public static void main(String[] args) {
final LocalDateTime JAN_1_1970 = new LocalDateTime(1970, 1, 1, 0, 0);
DateTime local = new DateTime().withZone(DateTimeZone.forID("Europe/Amsterdam"));
DateTime utc = new DateTime(DateTimeZone.UTC);
System.out.println("Europe/Amsterdam milis :" + new Duration(JAN_1_1970.toDateTime(DateTimeZone.forID("Europe/Amsterdam")), local).getMillis());
System.out.println("UTC milis :" + new Duration(JAN_1_1970.toDateTime(DateTimeZone.UTC), utc).getMillis());
}
而結果是;
Europe/Amsterdam milis :1429695646528
UTC milis :1429692046534
和@leonbloy寫here一個很好的評論。
您的本地和utc代表相同的時間點(僅在連接了 不同的時區時)。因此,getMillis()(它給出 「物理」時間間隔從對應於 unix時期的「即時」開始)必須返回相同的值。
我也會尋找更好的解決方案,沒有常數。
是的,剛纔,thx – JBoy