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

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

需要在 spring-boot 應(yīng)用程序中將本地日期從 Json 輸入持久化到 oracle DB

需要在 spring-boot 應(yīng)用程序中將本地日期從 Json 輸入持久化到 oracle DB

狐的傳說(shuō) 2022-11-02 16:42:24
我有字符串格式dd-MM-yyyy HH:mm:ss格式的json輸入中的本地日期[讓它是任何格式都沒(méi)有問(wèn)題],在標(biāo)題中有一個(gè)單獨(dú)的字段時(shí)區(qū)[例如:CST、CDT等]。在java中,當(dāng)我嘗試用這個(gè)值和時(shí)區(qū)創(chuàng)建一個(gè)日期時(shí),它是用我的系統(tǒng)[jvm running system]時(shí)區(qū)創(chuàng)建的。我需要使用輸入時(shí)區(qū)從輸入中保留確切的日期和時(shí)間。我該怎么做 ?我什至嘗試將日期對(duì)象@DateTimeFormat放在 dto 而不是字符串中,但這不起作用。我想要一個(gè)這樣的方法來(lái)從輸入日期字符串和時(shí)區(qū)獲取本地日期。public Date getLocalDate(String dateString, String localTimeZone) {  SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss a");     formatter.setTimeZone(TimeZone.getTimeZone(localTimeZone));          return formatter.parse(dateString);}輸入:dateString:“20-04-2019 20:15:00 AM”localTimeZone:“CDT”。預(yù)期輸出:日期對(duì)象,值為 20-04-2019 20:15:00 AM CDT。實(shí)際輸出:與 IST-CDT 時(shí)差與 IST 時(shí)區(qū)相同的日期
查看完整描述

2 回答

?
蕭十郎

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

關(guān)于Date對(duì)象的真正含義存在誤解。自'01-01-1970 00:00:00 UTC'. 換句話說(shuō),它始終是 UTC 日期/時(shí)間,當(dāng)您嘗試打印它時(shí),默認(rèn)格式化程序會(huì)在您的本地時(shí)區(qū)中隱式轉(zhuǎn)換它。

如果您想同時(shí)存儲(chǔ)瞬間(即 UTC 日期/時(shí)間)和時(shí)區(qū),則必須使用Calendar對(duì)象。但無(wú)論如何,如果你想在 Oracle 中存儲(chǔ)時(shí)間和區(qū)域,你應(yīng)該直接存儲(chǔ)一個(gè)字符串,或者一個(gè)日期和一個(gè)字符串(對(duì)于時(shí)區(qū)),因?yàn)?AFAIK,Oracle DATE 字段沒(méi)有時(shí)區(qū)的概念。


查看完整回答
反對(duì) 回復(fù) 2022-11-02
?
POPMUISE

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

java.time

您正在使用幾年前被JSR 310 中定義的java.time類(lèi)取代的糟糕的日期時(shí)間類(lèi)。

“CST”和這樣的 2-4 個(gè)字符的偽區(qū)域不是時(shí)區(qū)。它們不是標(biāo)準(zhǔn)化的,甚至不是唯一的!例如:CST是北美中部時(shí)間,也是中國(guó)標(biāo)準(zhǔn)時(shí)間。

真正的時(shí)區(qū)采用格式Continent/Region。例如:Europe/ParisAfrica/Tunis。請(qǐng)參閱維基百科中的列表。

要在時(shí)區(qū)的上下文中表示日期和時(shí)間,請(qǐng)使用ZonedDateTimeclass。

LocalDateTime要存儲(chǔ)與區(qū)域、使用和ZoneId類(lèi)分開(kāi)的日期時(shí)間。

數(shù)據(jù)庫(kù)

您的評(píng)論表明希望將當(dāng)前時(shí)刻存儲(chǔ)在數(shù)據(jù)庫(kù)中。

以 UTC 捕獲當(dāng)前時(shí)刻。

Instant instant = Instant.now() ;

要與 JDBC 4.2 一起使用,請(qǐng)轉(zhuǎn)換為OffsetDateTime.

OffsetDateTime odt = instant.atOffset( ZoneOffset.UTC ) ;

傳遞給準(zhǔn)備好的語(yǔ)句。

myPreparedStatement.setObject( … , odt ) ;

取回。

OffsetDateTime odt = myResultSet.getObject( … , OffsetDateTime.class ) ;


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

添加回答

舉報(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)