Java中指准時區的3種辦法。本站提示廣大學習愛好者:(Java中指准時區的3種辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中指准時區的3種辦法正文
這兩天在做與某著名一卡通公司的單點登錄集成(我們的產物應用Java編寫,對方的法式應用.Net編寫)個中有一項參數是時光戳。即以後時光絕對於公元1970-1-1 00:00:00的秒數。依照他們給出的文檔我完成了Java部門的編寫,時光戳部門很簡略,一句話:
private String createTimestamp() //timestamp
{
return System.currentTimeMillis() / 1000 + "";
}
應用System.currentTimeMillis()辦法就可以獲得自1970年1月1日0時0分0秒的毫秒數,除以1000天然是秒數。然則不測卻產生了,我發生的時光戳跟他們公司發生的時光戳差了一年夜截,查閱材料後發明.Net跟Java在處置時光上有收支。
.Net發生的時光都是以後時區確當前時光,而Java的currentTimeMillis()辦法獲得的倒是絕對於GMT來的時光。中國地點時區是+8區,故時光整整差了8小時!
所以當童鞋們再碰到.Net跟Java時光紛歧致的時刻,多往時區方面斟酌斟酌,說不定就可以找到處理方法了 :)
固然我會給出處理計劃:
辦法一:JVM運轉時增長參數,指准時區 -D user.timezone=GMT+08
辦法二:直接在法式中設置時區。System.setProperty(“user.timezone”,”GMT +08″);
辦法三:直接加上28800就行了(8hours*60min*60sec=28800)