Skip to content

Commit 9f52504

Browse files
rajat-gargrajatgarg
andauthored
[BAEL-8227] Convert between Timestamp and DateTime (#17123)
Co-authored-by: rajatgarg <[email protected]>
1 parent b6ff9cb commit 9f52504

File tree

2 files changed

+105
-0
lines changed

2 files changed

+105
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.baeldung.convertdatetimeandtimestamp;
2+
3+
import java.sql.Timestamp;
4+
import java.time.Instant;
5+
import java.time.LocalDateTime;
6+
import java.time.ZoneId;
7+
8+
import org.joda.time.DateTime;
9+
10+
public class DateTimeAndTimestampConverter {
11+
12+
public static DateTime convertToDateTimeUsingConstructor(Timestamp timestamp) {
13+
return new DateTime(timestamp.getTime());
14+
}
15+
16+
public static DateTime convertToDateTimeUsingInstant(Timestamp timestamp) {
17+
Instant instant = timestamp.toInstant();
18+
return new DateTime(instant.toEpochMilli());
19+
}
20+
21+
public static DateTime convertToDateTimeUsingLocalDateTime(Timestamp timestamp) {
22+
LocalDateTime localDateTime = timestamp.toLocalDateTime();
23+
return new DateTime(localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());
24+
}
25+
26+
public static Timestamp convertToTimestampUsingConstructor(DateTime dateTime) {
27+
return new Timestamp(dateTime.getMillis());
28+
}
29+
30+
public static Timestamp convertToTimestampUsingInstant(DateTime dateTime) {
31+
Instant instant = Instant.ofEpochMilli(dateTime.getMillis());
32+
return Timestamp.from(instant);
33+
}
34+
35+
public static Timestamp convertToTimestampUsingLocalDateTime(DateTime dateTime) {
36+
Instant instant = Instant.ofEpochMilli(dateTime.getMillis());
37+
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
38+
return Timestamp.valueOf(localDateTime);
39+
}
40+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package com.baeldung.convertdatetimeandtimestamp;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import java.sql.Timestamp;
6+
import org.joda.time.DateTime;
7+
import org.junit.jupiter.api.Test;
8+
9+
10+
public class DateTimeAndTimestampConverterUnitTest {
11+
12+
@Test
13+
public void givenTimestamp_whenUsingConstructor_thenConvertToDateTime() {
14+
long currentTimeMillis = System.currentTimeMillis();
15+
Timestamp timestamp = new Timestamp(currentTimeMillis);
16+
DateTime expectedDateTime = new DateTime(currentTimeMillis);
17+
DateTime convertedDateTime = DateTimeAndTimestampConverter.convertToDateTimeUsingConstructor(timestamp);
18+
assertEquals(expectedDateTime, convertedDateTime);
19+
}
20+
21+
@Test
22+
public void givenTimestamp_whenUsingInstant_thenConvertToDateTime() {
23+
long currentTimeMillis = System.currentTimeMillis();
24+
Timestamp timestamp = new Timestamp(currentTimeMillis);
25+
DateTime expectedDateTime = new DateTime(currentTimeMillis);
26+
DateTime convertedDateTime = DateTimeAndTimestampConverter.convertToDateTimeUsingInstant(timestamp);
27+
assertEquals(expectedDateTime, convertedDateTime);
28+
}
29+
30+
@Test
31+
public void givenTimestamp_whenUsingLocalDateTime_thenConvertToDateTime() {
32+
long currentTimeMillis = System.currentTimeMillis();
33+
Timestamp timestamp = new Timestamp(currentTimeMillis);
34+
DateTime expectedDateTime = new DateTime(currentTimeMillis);
35+
DateTime convertedDateTime = DateTimeAndTimestampConverter.convertToDateTimeUsingLocalDateTime(timestamp);
36+
assertEquals(expectedDateTime, convertedDateTime);
37+
}
38+
39+
@Test
40+
public void givenDateTime_whenUsingConstructor_thenConvertToTimestamp() {
41+
long currentTimeMillis = System.currentTimeMillis();
42+
DateTime dateTime = new DateTime(currentTimeMillis);
43+
Timestamp expectedTimestamp = new Timestamp(currentTimeMillis);
44+
Timestamp convertedTimestamp = DateTimeAndTimestampConverter.convertToTimestampUsingConstructor(dateTime);
45+
assertEquals(expectedTimestamp, convertedTimestamp);
46+
}
47+
48+
@Test
49+
public void givenDateTime_whenUsingInstant_thenConvertToTimestamp() {
50+
long currentTimeMillis = System.currentTimeMillis();
51+
DateTime dateTime = new DateTime(currentTimeMillis);
52+
Timestamp expectedTimestamp = new Timestamp(currentTimeMillis);
53+
Timestamp convertedTimestamp = DateTimeAndTimestampConverter.convertToTimestampUsingInstant(dateTime);
54+
assertEquals(expectedTimestamp, convertedTimestamp);
55+
}
56+
57+
@Test
58+
public void givenDateTime_whenUsingLocalDateTime_thenConvertToTimestamp() {
59+
long currentTimeMillis = System.currentTimeMillis();
60+
DateTime dateTime = new DateTime(currentTimeMillis);
61+
Timestamp expectedTimestamp = new Timestamp(currentTimeMillis);
62+
Timestamp convertedTimestamp = DateTimeAndTimestampConverter.convertToTimestampUsingLocalDateTime(dateTime);
63+
assertEquals(expectedTimestamp, convertedTimestamp);
64+
}
65+
}

0 commit comments

Comments
 (0)