Trước Java8, tôi đã sử dụng lớp DateTime
của Joda để bao gồm thông tin múi giờ và tôi có thể dễ dàng chuyển đổi giữa DateTime
và sql Timestamp
.Java 8 ZonedDateTime hoặc OffsetDateTime để thay thế Joda DateTime
Khi di chuyển sang Java8, lớp nào tôi nên thay thế? OffsetDateTime
hoặc ZonedDateTime
?
Ngoài ra, tôi đã cố gắng sử dụng OffsetDateTime
, nhưng có vẻ như không thể xây dựng lại thành OffsetDateTime
từ sql Timestamp
.
Đối Joda DateTime
và Timestamp
chuyển đổi, mã này là như sau:
val joda = DateTime.now()
val sqlJoda = new Timestamp(joda.getMillis)
val jodaBack = new DateTime(sqlJoda)
Nhưng đối với Java8,
val java8 = OffsetDateTime.now()
val sqlJava8 = new Timestamp(java8.toInstant.toEpochMilli)
val java8Back = ???
Bất cứ ai cũng có một số ý tưởng về điều đó? Có vẻ như Joda DateTime
thực sự tốt.
Ánh xạ chính thức của dấu thời gian SQL là LocalDateTime (dấu thời gian không có múi giờ) hoặc OffsetDateTime (dấu thời gian có múi giờ). Xem ví dụ bản phát hành Bảo trì 2 của JDBC 4 JCP tại đây: https://jcp.org/en/jsr/detail?id=221 – assylias
Không biết điều đó. Cảm ơn. Có tài liệu nào không? – spa
Xem thêm: http://stackoverflow.com/a/31749317/829571 – assylias