我想要做的是存儲日期,以毫秒爲單位表示,即從當前時間開始的下一個午夜。所以,在晚上10點11分發布這個消息,我想要一個日期,明天上午12:00。對於這個任務,我寫這行代碼(知道有一天86400000毫秒):添加毫秒但不在正確時間的Android日期
long time = System.currentTimeMillis() + (86400000 - (System.currentTimeMillis() % 86400000));
該生產線設計爲從最後午夜計算額外的毫秒。減去從一個整天找到下一個午夜的時間,然後將其添加到當前時間,以便新值是下一個午夜的值。不管什麼原因,調用#toString()方法時,我用來調試的日期對象吐出「Wed Apr 20 20:00:00 EDT 2016」。目前的時間據稱是「2016年4月19日22:08:34美國東部時間2016」,與其他日期的計算同時進行。
這意味着毫秒長實際上代表第二天晚上8:00,而我希望它代表中午12:00。任何人都可以幫助我發現我的邏輯中的缺陷嗎?
我很可能錯過了一些明顯的東西,所以請耐心等待。
注:我也嘗試計算這樣的時間:
long time = System.currentTimeMillis() - (System.currentTimeMillis() % 86400000) + 86400000;
,但是這導致在同一Date對象。
您需要調整您的時區,'System.currentTimeMillis的()'是UTC – Breavyn