Java中指定時區(qū)的3種方法
這兩天在做與某知名一卡通公司的單點登錄集成(我們的產(chǎn)品使用Java編寫,對方的程序使用.Net編寫)其中有一項參數(shù)是時間戳。即當前時間相對于公元1970-1-1 00:00:00的秒數(shù)。按照他們給出的文檔我完成了Java部分的編寫,時間戳部分很簡單,一句話:
private String createTimestamp() //timestamp
{
return System.currentTimeMillis() / 1000 + "";
}
使用System.currentTimeMillis()方法就能得到自1970年1月1日0時0分0秒的毫秒數(shù),除以1000自然是秒數(shù)。但是意外卻發(fā)生了,我產(chǎn)生的時間戳跟他們公司產(chǎn)生的時間戳差了一大截,查閱資料后發(fā)現(xiàn).Net跟Java在處理時間上有出入。
.Net產(chǎn)生的時間都是當前時區(qū)的當前時間,而Java的currentTimeMillis()方法得到的卻是相對于GMT來的時間。中國所在時區(qū)是+8區(qū),故時間整整差了8小時!
所以當童鞋們再遇到.Net跟Java時間不一致的時候,多往時區(qū)方面考慮考慮,說不定就能找到解決辦法了 :)
當然我會給出解決方案:
方法一:JVM運行時增加參數(shù),指定時區(qū) -D user.timezone=GMT+08
方法二:直接在程序中設(shè)置時區(qū)。System.setProperty(“user.timezone”,”GMT +08″);
方法三:直接加上28800就好了(8hours*60min*60sec=28800)
相關(guān)文章
Spring Boot和Docker實現(xiàn)微服務(wù)部署的方法
這篇文章主要介紹了Spring Boot和Docker實現(xiàn)微服務(wù)部署的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01
解決mybatis generator MySQL自增ID出現(xiàn)重復(fù)問題MySQLIntegrityC
在MySQL中使用MyBatis時,可能會遇到由于主鍵重復(fù)導(dǎo)致的插入失敗問題,此問題通常發(fā)生在連續(xù)插入多條數(shù)據(jù)時,如果selectKey的order配置錯誤,如使用BEFORE而不是AFTER,將會導(dǎo)致獲取的ID未更新,引起主鍵重復(fù)錯誤,正確的配置應(yīng)使用AFTER2024-10-10
使用springboot logback動態(tài)獲取application的配置項
這篇文章主要介紹了使用springboot logback動態(tài)獲取application的配置項,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Springboot+MyBatist實現(xiàn)前后臺交互登陸功能方式
這篇文章主要介紹了Springboot+MyBatist實現(xiàn)前后臺交互登陸功能方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01
mybatis?mapper.xml中如何根據(jù)數(shù)據(jù)庫類型選擇對應(yīng)SQL語句
這篇文章主要介紹了mybatis?mapper.xml中如何根據(jù)數(shù)據(jù)庫類型選擇對應(yīng)SQL語句,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01

