第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何在java中更改操作系統(tǒng)時(shí)區(qū)?

如何在java中更改操作系統(tǒng)時(shí)區(qū)?

拉莫斯之舞 2023-07-13 17:40:46
我的 java 應(yīng)用程序在 Ubuntu 上運(yùn)行,我有一個(gè)需要從 java 更改操作系統(tǒng)時(shí)區(qū)的用例。我嘗試使用 Joda 和 Java.util.Timezone 來實(shí)現(xiàn)這一目標(biāo)。但看起來,他們只是改變了 jvm 時(shí)區(qū),而不是實(shí)際的操作系統(tǒng)。因此,在服務(wù)器/機(jī)器重新啟動(dòng)時(shí),我將使用舊時(shí)區(qū)。有什么方法可以從java實(shí)現(xiàn)這一點(diǎn),或者我需要依賴Runtime.getRuntime().exec(“os命令”)?注意:在這種情況下,時(shí)區(qū)將是用戶特定的(用戶將定義自己的時(shí)區(qū))。不同的實(shí)例可能有不同的時(shí)區(qū)。
查看完整描述

3 回答

?
海綿寶寶撒

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊

假設(shè)您擁有 root 權(quán)限,這將更改 Linux 中的操作系統(tǒng)時(shí)區(qū):


import java.io.File;

import java.nio.file.Files;

import static java.nio.file.StandardCopyOption.COPY_ATTRIBUTES;

import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;? ??


// ...


String zone = "Asia/Tokyo";

File source = new File("/usr/share/zoneinfo/" + zone);

File dest = new File("/etc/localtime");

Files.copy(source.toPath(), dest.toPath(), REPLACE_EXISTING, COPY_ATTRIBUTES);

請(qǐng)注意,更改操作系統(tǒng)默認(rèn)時(shí)區(qū)不會(huì)影響當(dāng)前進(jìn)程。另請(qǐng)注意,這不可移植。


創(chuàng)建符號(hào)鏈接可能會(huì)更好,但兩者都應(yīng)該有效。


要永久更改單個(gè)用戶的時(shí)區(qū),請(qǐng)export TZ='Asia/Tokyo'寫入啟動(dòng)腳本,例如.bashrc. 您不需要為此提升權(quán)限。


查看完整回答
反對(duì) 回復(fù) 2023-07-13
?
至尊寶的傳說

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊

JVM維護(hù)自己的默認(rèn)時(shí)區(qū),與主機(jī)操作系統(tǒng)時(shí)區(qū)設(shè)置無關(guān)。

大多數(shù) Java 實(shí)現(xiàn)在啟動(dòng)時(shí)都默認(rèn)使用主機(jī)操作系統(tǒng)當(dāng)前的默認(rèn)時(shí)區(qū)?;蛘?,您可以將參數(shù)傳遞給 JVM 啟動(dòng)程序以指定另一個(gè)時(shí)區(qū)。最后,調(diào)用TimeZone.setDefault立即更改該 JVM 中運(yùn)行的所有應(yīng)用程序的所有線程中的所有代碼的當(dāng)前默認(rèn)時(shí)區(qū)。

我需要從 java 更改操作系統(tǒng)時(shí)區(qū)。

無法使用捆綁的 Java 類。據(jù)我所知,沒有任何 Java 實(shí)現(xiàn)能夠?yàn)?Java 應(yīng)用程序提供這種功能。

您也許能夠從 Java 中調(diào)用一些本機(jī)應(yīng)用程序或?qū)嵱贸绦颍@些應(yīng)用程序或?qū)嵱贸绦蚩赡軙?huì)更改主機(jī)操作系統(tǒng)時(shí)區(qū)設(shè)置。但您必須找到這樣的實(shí)用程序,并設(shè)置從 Java 到本機(jī)代碼的橋接調(diào)用?;蛘吣梢詧?zhí)行 shell 腳本來更改操作系統(tǒng)設(shè)置。

至于 Java 代碼中的日期時(shí)間處理,您不應(yīng)依賴主機(jī)操作系統(tǒng)或 JVM 的默認(rèn)時(shí)區(qū)。我建議始終將可選ZoneId(或ZoneOffset) 傳遞給各種日期時(shí)間方法。省略該參數(shù)會(huì)導(dǎo)致隱式依賴 JVM 當(dāng)前的默認(rèn)時(shí)區(qū)。最好指定您想要/預(yù)期的時(shí)區(qū)。

ZoneId?z?=?ZoneId.of(?"Africa/Tunis"?)?;
ZonedDateTime?zdt?=?ZonedDateTime.now(?z?)?;

順便說一下,請(qǐng)注意Joda-Time項(xiàng)目現(xiàn)在處于維護(hù)模式。它的創(chuàng)建者 Stephen Colebourne 隨后在JSR 310 定義的java.time類中創(chuàng)建了它的后繼者,現(xiàn)在與 Java 8 及更高版本捆綁在一起。


查看完整回答
反對(duì) 回復(fù) 2023-07-13
?
UYOU

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊

這是可能的答案:

Calendar gmtTime = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
System.out.println(gmtTime.getTime());


查看完整回答
反對(duì) 回復(fù) 2023-07-13
  • 3 回答
  • 0 關(guān)注
  • 290 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)