- >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 –