- >2015-10-19T00:00:00Z
的java.sql.Timestamp ZoneOffset錯配java.time
Timestamp.from(inst)
- >2015-10-19 11:00:00.0
爲什麼java.sql.Timestamp中的轉換後加入我的本地時區(+11)?
- >2015-10-19T00:00:00Z
的java.sql.Timestamp ZoneOffset錯配java.time
Timestamp.from(inst)
- >2015-10-19 11:00:00.0
爲什麼java.sql.Timestamp中的轉換後加入我的本地時區(+11)?
好吧,如果我們把你的代碼...
Instant inst = LocalDate.now().atStartOfDay().toInstant(ZoneOffset.UTC);
Timestamp ts = Timestamp.from(inst);
System.out.println(inst);
System.out.println(ts);
它打印...
2015-10-19T00:00:00Z
2015-10-19 11:00:00.0
這admittly可能是意想不到的,但如果我們增加......
System.out.println(inst.toEpochMilli());
System.out.println(ts.getTime());
哪個輸出
1445212800000
1445212800000
你可以看到,這兩個值實際上都是一樣的東西,但Timestamp
是有適用於它的本地時區時,它被印
現在,如果相反,我們這樣做......
使用系統時區Instant inst = LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant();
Timestamp ts = Timestamp.from(inst);
System.out.println(inst);
System.out.println(ts);
System.out.println(inst.toEpochMilli());
System.out.println(ts.getTime());
,它打印
2015-10-18T13:00:00Z
2015-10-19 00:00:00.0
1445173200000
1445173200000
所以,問題就變成了,哪一個對你更重要?就個人而言,我認爲你有什麼更重要的
好吧...所以這是一個字符串轉換的問題是什麼導致我下一個問題......謝謝@madprogrammer –
我會假設它是關於時區。 UTC的本地偏移量是多少? –
如果您同時轉儲'inst'和'Timestamp'毫秒值,兩者都是相同的,'1445212800000',最有可能的'Timestamp'在本地時區呈現值 – MadProgrammer
嗨,我的本地時區是+11但我需要知道如何正確的方式來獲取LocalDate.now()。atStartOfDay().InInstant(ZoneOffset.UTC)的java.sql.Timestamp –