Java example to convert java.time.ZonedDateTime
to java.sql.Timestamp
and vice verse.
1. ZonedDateTime -> Timestamp
TimeExample1.java
package com.favtuts.time; import java.sql.Timestamp; import java.time.ZonedDateTime; public class ZonedDateTimeToTimestamp { public static void main(String[] args) { convertZonedDateTimeToSqlTimestamp(); } static void convertZonedDateTimeToSqlTimestamp() { ZonedDateTime now = ZonedDateTime.now(); // 1. ZonedDateTime to TimeStamp Timestamp timestamp = Timestamp.valueOf(now.toLocalDateTime()); // 2. ZonedDateTime to TimeStamp , no different Timestamp timestamp2 = Timestamp.from(now.toInstant()); System.out.println(now); // 2019-06-19T14:12:13.585294800+08:00[Asia/Kuala_Lumpur] System.out.println(timestamp); // 2019-06-19 14:12:13.5852948 System.out.println(timestamp2); // 2019-06-19 14:12:13.5852948 } }
Output
2022-06-05T17:29:21.718961+07:00[Asia/Ho_Chi_Minh]
2022-06-05 17:29:21.718961
2022-06-05 17:29:21.718961
2. Timestamp -> ZonedDateTime
TimeExample2.java
package com.favtuts.time; import java.sql.Timestamp; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.ZonedDateTime; public class ZonedDateTimeToTimestamp { public static void main(String[] args) { convertSqlTimestampToZonedDateTime(); } static void convertSqlTimestampToZonedDateTime() { Timestamp timestamp = Timestamp.from(Instant.now()); LocalDateTime localDateTimeNoTimeZone = timestamp.toLocalDateTime(); ZonedDateTime zonedDateTime1 = localDateTimeNoTimeZone.atZone(ZoneId.of("+08:00")); ZonedDateTime zonedDateTime2 = localDateTimeNoTimeZone.atZone(ZoneId.of("Asia/Kuala_Lumpur")); ZonedDateTime zonedDateTime3 = localDateTimeNoTimeZone.atZone(ZoneId.systemDefault()); ZonedDateTime zonedDateTime4 = localDateTimeNoTimeZone.atZone(ZoneId.of("-08:00")); System.out.println(timestamp); // 2019-06-19 14:08:23.4458984 System.out.println(zonedDateTime1); // 2019-06-19T14:08:23.445898400+08:00 System.out.println(zonedDateTime2); // 2019-06-19T14:08:23.445898400+08:00[Asia/Kuala_Lumpur] System.out.println(zonedDateTime3); // 2019-06-19T14:08:23.445898400+08:00[Asia/Kuala_Lumpur] System.out.println(zonedDateTime4); // 2019-06-19T14:08:23.445898400-08:00 } }
Output
2022-06-05 17:32:35.357021
2022-06-05T17:32:35.357021+08:00
2022-06-05T17:32:35.357021+08:00[Asia/Kuala_Lumpur]
2022-06-05T17:32:35.357021+07:00[Asia/Ho_Chi_Minh]
2022-06-05T17:32:35.357021-08:00
Download Source Code
$ git clone https://github.com/favtuts/java-core-tutorials-examples
$ cd java-basic/time