Skip to content

Commit 16f68c6

Browse files
committed
Merge branch 'develop'
2 parents 31bf4a1 + 62a565b commit 16f68c6

File tree

5 files changed

+49
-11
lines changed

5 files changed

+49
-11
lines changed

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@
1010

1111
<modelVersion>4.0.0</modelVersion>
1212
<artifactId>rdb-utils</artifactId>
13-
<version>0.1.2</version>
13+
<version>0.1.3</version>
1414
<name>RdbUtils</name>
1515
<packaging>jar</packaging>
1616

1717
<dependencies>
1818
<dependency>
1919
<groupId>info.unterrainer.commons</groupId>
2020
<artifactId>jre-utils</artifactId>
21-
<version>0.1.2</version>
21+
<version>0.1.4</version>
2222
</dependency>
2323
<dependency>
2424
<groupId>javax.persistence</groupId>

src/main/java/info/unterrainer/commons/parentpom/Information.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
public class Information {
44
public static final String name = "Parent-POM";
5-
public static final String buildTime = "2020-12-10T07:24:25Z";
6-
public static final String pomVersion = "0.1.2";
5+
public static final String buildTime = "2021-03-05T08:13:18Z";
6+
public static final String pomVersion = "0.1.3";
77
}

src/main/java/info/unterrainer/commons/rdbutils/converters/LocalDateTimeConverter.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,19 @@
77
import javax.persistence.AttributeConverter;
88
import javax.persistence.Converter;
99

10+
import info.unterrainer.commons.jreutils.DateUtils;
11+
1012
@Converter()
1113
public class LocalDateTimeConverter implements AttributeConverter<LocalDateTime, Timestamp> {
1214

1315
@Override
14-
public Timestamp convertToDatabaseColumn(final LocalDateTime attribute) {
15-
return attribute == null ? null : Timestamp.valueOf(attribute.truncatedTo(ChronoUnit.MICROS));
16+
public Timestamp convertToDatabaseColumn(final LocalDateTime entityValue) {
17+
return entityValue == null ? null
18+
: new Timestamp(DateUtils.utcLocalDateTimeToEpoch(entityValue.truncatedTo(ChronoUnit.MICROS)));
1619
}
1720

1821
@Override
19-
public LocalDateTime convertToEntityAttribute(final Timestamp dbData) {
20-
return dbData == null ? null : dbData.toLocalDateTime();
22+
public LocalDateTime convertToEntityAttribute(final Timestamp dbValue) {
23+
return dbValue == null ? null : DateUtils.epochToUtcLocalDateTime(dbValue.getTime());
2124
}
2225
}

src/main/java/info/unterrainer/commons/rdbutils/converters/ZonedDateTimeConverter.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,19 @@
77
import javax.persistence.AttributeConverter;
88
import javax.persistence.Converter;
99

10+
import info.unterrainer.commons.jreutils.DateUtils;
11+
1012
@Converter(autoApply = true)
1113
public class ZonedDateTimeConverter implements AttributeConverter<LocalDateTime, Timestamp> {
1214

1315
@Override
14-
public Timestamp convertToDatabaseColumn(final java.time.LocalDateTime entityValue) {
15-
return entityValue == null ? null : Timestamp.valueOf(entityValue.truncatedTo(ChronoUnit.MICROS));
16+
public Timestamp convertToDatabaseColumn(final LocalDateTime entityValue) {
17+
return entityValue == null ? null
18+
: new Timestamp(DateUtils.utcLocalDateTimeToEpoch(entityValue.truncatedTo(ChronoUnit.MICROS)));
1619
}
1720

1821
@Override
1922
public LocalDateTime convertToEntityAttribute(final Timestamp dbValue) {
20-
return dbValue == null ? null : dbValue.toLocalDateTime();
23+
return dbValue == null ? null : DateUtils.epochToUtcLocalDateTime(dbValue.getTime());
2124
}
2225
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package info.unterrainer.commons.rdbutils;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import java.sql.Timestamp;
6+
import java.time.LocalDateTime;
7+
8+
import org.junit.jupiter.api.Test;
9+
10+
import info.unterrainer.commons.jreutils.DateUtils;
11+
import info.unterrainer.commons.rdbutils.converters.LocalDateTimeConverter;
12+
13+
public class LocalDateTimeConverterTests {
14+
15+
LocalDateTimeConverter converter = new LocalDateTimeConverter();
16+
17+
@Test
18+
public void conversionFromLocalDateTimeToTimestamp() {
19+
LocalDateTime d = DateUtils.nowUtc();
20+
Timestamp ts = converter.convertToDatabaseColumn(d);
21+
22+
assertThat(DateUtils.utcLocalDateTimeToEpoch(d)).isEqualTo(ts.getTime());
23+
}
24+
25+
@Test
26+
public void conversionFromTimestampToLocalDateTime() {
27+
Timestamp ts = new Timestamp(DateUtils.utcLocalDateTimeToEpoch(DateUtils.nowUtc()));
28+
LocalDateTime d = converter.convertToEntityAttribute(ts);
29+
30+
assertThat(ts.getTime()).isEqualTo(DateUtils.utcLocalDateTimeToEpoch(d));
31+
}
32+
}

0 commit comments

Comments
 (0)