【发布时间】:2015-09-15 15:03:42
【问题描述】:
如何将 Localdatetime 转换为时间戳?我想使用新的 SE 8 date api,因为它比 util date 和 calendar 更好。我计划在整个程序中使用 localdatetime,然后将该日期放入 mysql 数据库中。我一直在寻找答案,但 java.time 似乎没有很多问题和答案。这是我正在测试的一些代码。这是我得到的。
LocalDateTime c = LocalDateTime.now();
java.sql.Timestamp javaSqlDate = new java.sql.Timestamp(c.getLong());
我想我需要先将其转换为 long,但我不知道如何。该 api 允许转换单个元素,如月份和日期,但不能转换整个日期。既然我已经在这里,你如何从时间戳转换回来?我应该只使用jodatime吗?
我试过这个:
LocalDateTime c = LocalDateTime.now();
ZoneId zoneId = ZoneId.systemDefault();
System.out.println("this:" + c);
java.sql.Timestamp javaSqlDate = new java.sql.Timestamp(c.atZone(zoneId).toEpochSecond());
pst.setTimestamp(2, javaSqlDate);
这只会保存 1970 年左右的日期。system.print 会正确打印当前日期。我希望它保存当前日期。
【问题讨论】: