這篇文章主要講解了“l(fā)inux下怎么設(shè)置 JVM 時區(qū)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“l(fā)inux下怎么設(shè)置 JVM 時區(qū)”吧!
目前創(chuàng)新互聯(lián)建站已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計、鄒城網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
當(dāng)涉及到時間戳?xí)r,我們的應(yīng)用程序的用戶可能要求很高。他們希望我們的應(yīng)用程序自動檢測其時區(qū),并在正確的時區(qū)中顯示時間戳。
在本教程中,我們將介紹幾種修改 JVM 時區(qū)的方法。我們還將了解與管理時區(qū)相關(guān)的一些陷阱。
默認(rèn)情況下,JVM 從操作系統(tǒng)讀取時區(qū)信息。此信息將傳遞到TimeZone類,該類存儲時區(qū)并計算夏令時。
我們可以調(diào)用方法getDefault,它將返回程序運行的時區(qū)。此外,我們可以使用TimeZone. getAvaableID() 從應(yīng)用程序獲取受支持的時區(qū) ID 列表。
命名時區(qū)時,Java 依賴于 tz 數(shù)據(jù)庫的命名約定。
在本節(jié)中,我們將介紹幾種更改 JVM 時區(qū)的方法。
讓我們先看看如何使用環(huán)境變量來更改時區(qū)。我們可以添加或修改環(huán)境變量TZ。
例如,在基于 Linux 的環(huán)境中,我們可以使用導(dǎo)出命令:
| export TZ="America/Sao_Paulo" |
設(shè)置環(huán)境變量后,我們可以看到,我們運行的應(yīng)用程序的時區(qū)現(xiàn)在是美國/Sao_Paulo:
| Calendar calendar = Calendar.getInstance(); |
| assertEquals(calendar.getTimeZone(), TimeZone.getTimeZone("America/Sao_Paulo")); |
設(shè)置環(huán)境變量的替代方法是設(shè)置 JVM 參數(shù)user.timezone。此 JVM 參數(shù)優(yōu)先于環(huán)境變量TZ。
例如,在運行應(yīng)用程序時可以使用標(biāo)志-D:
| java -Duser.timezone="Asia/Kolkata"com.company.Main |
同樣,我們還可以從應(yīng)用程序設(shè)置 JVM 參數(shù):
| System.setProperty("user.timezone", "Asia/Kolkata"); |
我們現(xiàn)在可以看到時區(qū)是亞洲/加爾各答:
| Calendar calendar = Calendar.getInstance(); |
| assertEquals(calendar.getTimeZone(), TimeZone.getTimeZone("Asia/Kolkata")); |
最后,我們還可以使用TimeZone類從應(yīng)用程序修改 JVM 時區(qū)。此方法優(yōu)先于環(huán)境變量和 JVM 參數(shù)。
設(shè)置默認(rèn)時區(qū)非常簡單:
| TimeZone.setDefault(TimeZone.getTimeZone("Portugal")); |
正如預(yù)期的那樣,時區(qū)現(xiàn)在是葡萄牙:
| Calendar calendar = Calendar.getInstance(); |
| assertEquals(calendar.getTimeZone(), TimeZone.getTimeZone("Portugal")); |
即使可以使用三個字母的 ID 來表示時區(qū),也不建議使用。
相反,我們應(yīng)該使用較長的名稱,因為三個字母的 ID 是模棱兩可的。例如,IST 可以是印度標(biāo)準(zhǔn)時間、愛爾蘭標(biāo)準(zhǔn)時間或以色列標(biāo)準(zhǔn)時間。
請注意,上述每種方法都為整個應(yīng)用程序全局設(shè)置時區(qū)。然而,在現(xiàn)代應(yīng)用程序中,設(shè)置時區(qū)往往比這更微妙。
例如,我們可能需要將時間轉(zhuǎn)換為最終用戶的時區(qū),因此全局時區(qū)沒有意義。如果不需要全局時區(qū),請考慮直接在每個日期時間實例上指定時區(qū)。分區(qū)日期時間或偏移日期時間是一個方便的類。
感謝各位的閱讀,以上就是“l(fā)inux下怎么設(shè)置 JVM 時區(qū)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對linux下怎么設(shè)置 JVM 時區(qū)這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
本文題目:linux下怎么設(shè)置JVM時區(qū)
本文網(wǎng)址:http://aaarwkj.com/article14/ggppge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、網(wǎng)頁設(shè)計公司、網(wǎng)站改版、微信公眾號、網(wǎng)站制作、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)