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

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

DateTime 轉(zhuǎn)換為具有偏移值的本地日期時(shí)間

DateTime 轉(zhuǎn)換為具有偏移值的本地日期時(shí)間

ibeautiful 2022-07-14 17:22:13
我從源系統(tǒng)獲取帶有偏移時(shí)間值的以下字符串格式的日期時(shí)間內(nèi)容。2019-02-16T10:00:00+08:00我想使用偏移值將其轉(zhuǎn)換為本地日期時(shí)間。我嘗試了以下方法,但沒(méi)有得到預(yù)期的結(jié)果。DateTime date = new DateTime("2019-02-16T10:00:00+08:00");-->output == 2019-02-16T02:00:00.000Z(小時(shí)減少而不是增加)DateTime date = new DateTime("2019-02-16T10:00:00-08:00");-->output == 2019-02-16T18:00:00.000Z(小時(shí)增加而不是減少)。有什么簡(jiǎn)單的方法可以達(dá)到預(yù)期的輸出嗎?注意:我使用的是 Java 1.7
查看完整描述

2 回答

?
德瑪西亞99

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

你在做什么是正確的。要獲取您當(dāng)?shù)貢r(shí)區(qū)的時(shí)間:


    DateTime date = new DateTime("2019-02-16T10:00:00+08:00");

    DateTime dateTimeInLocalTimeZone = date.withZone(DateTimeZone.getDefault());

    System.out.println(dateTimeInLocalTimeZone);

在我在歐洲/哥本哈根時(shí)區(qū)的電腦上,我得到了


2019-02-16T03:00:00.000+01:00


正如評(píng)論中所說(shuō),與UTC時(shí)間相比已經(jīng)添加+08:00了偏移量。因此,您的字符串表示的時(shí)間點(diǎn)與. 它也可以寫(xiě)成因?yàn)椋òl(fā)音為“Zulu”)表示 UTC。2019-02-16T02:00:00+00:002019-02-16T02:00:00ZZ


java.time 和 ThreeTen Backport

如果您還沒(méi)有綁定到 Joda-Time,您可能更喜歡使用 java.time,這是現(xiàn)代 Java 日期和時(shí)間 API。代碼類似:


    OffsetDateTime sourceDateTime = OffsetDateTime.parse("2019-02-16T10:00:00+08:00");

    ZonedDateTime dateTimeInLocalTimeZone = sourceDateTime.atZoneSameInstant(ZoneId.systemDefault());

2019-02-16T03:00+01:00[歐洲/哥本哈根]


問(wèn):我可以在 Java 1.7 上使用 java.time 嗎?

注意:我使用的是 Java 1.7


沒(méi)什么大問(wèn)題, java.time 至少需要Java 6。我已經(jīng)在 jdk1.7.0_79 上運(yùn)行了上面的代碼。


在 Java 8 及更高版本以及更新的 Android 設(shè)備(從 API 級(jí)別 26 開(kāi)始)中,現(xiàn)代 API 是內(nèi)置的。

在 Java 6 和 7 中獲得 ThreeTen Backport,現(xiàn)代類的后向端口(ThreeTen 用于 JSR 310;請(qǐng)參閱底部的鏈接)。

在(較舊的)Android 上使用 ThreeTen Backport 的 Android 版本。它被稱為 ThreeTenABP。并確保從org.threeten.bp子包中導(dǎo)入日期和時(shí)間類。


查看完整回答
反對(duì) 回復(fù) 2022-07-14
?
子衿沉夜

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

另一種方法:


String dt =  "2019-02-16T10:00:00+08:00";

ZonedDateTime zd = ZonedDateTime.parse("2019-02-16T10:00:00+08:00");

System.out.println(zd.toLocalDateTime().plusSeconds(zd.getOffset().getTotalSeconds()));

輸出


2019-02-16T18:00


查看完整回答
反對(duì) 回復(fù) 2022-07-14
  • 2 回答
  • 0 關(guān)注
  • 159 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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