Skip to content

Commit 6871dbf

Browse files
committed
support for conversion from LocalDate/LocalDateTime to Date/Timestamp
1 parent d0f3d5a commit 6871dbf

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Changed
11+
12+
- support for conversion from LocalDate/LocalDateTime to Date/Timestamp
13+
1014
## [8.5.6] - 2024-05-05
1115

1216
### Changed

fj-core/src/main/java/org/fugerit/java/core/db/daogen/SQLTypeConverter.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,13 @@ public static LocalDate utilDateToLocalDate(java.util.Date dateToConvert) {
4949
public static LocalDateTime utilDateToLocalDateTime(java.util.Date dateToConvert) {
5050
return SafeFunction.getIfNotNull( dateToConvert , () -> toZonedDateTime( dateToConvert ).toLocalDateTime() );
5151
}
52+
53+
public static Date localDateToSqlDate(LocalDate dateToConvert) {
54+
return SafeFunction.getIfNotNull( dateToConvert , () -> java.sql.Date.valueOf(dateToConvert) );
55+
}
56+
57+
public static Timestamp localDateTimeToTimestamp(LocalDateTime dateToConvert) {
58+
return SafeFunction.getIfNotNull( dateToConvert , () -> java.sql.Timestamp.valueOf(dateToConvert) );
59+
}
5260

5361
}

fj-core/src/test/java/test/org/fugerit/java/core/db/daogein/TestSQLTypeConverter.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,11 @@
77

88
import java.sql.Date;
99
import java.sql.Timestamp;
10+
import java.time.Instant;
1011
import java.time.LocalDate;
1112
import java.time.LocalDateTime;
13+
import java.time.temporal.TemporalField;
14+
import java.util.Calendar;
1215

1316
@Slf4j
1417
public class TestSQLTypeConverter {
@@ -20,13 +23,23 @@ public void testLocalDate() {
2023
LocalDate d = SQLTypeConverter.utilDateToLocalDate(Date.valueOf( TEST_YEAR+"-05-05" ));
2124
log.info( "local date : {}", d );
2225
Assert.assertEquals( TEST_YEAR, d.getYear() );
26+
Date t = SQLTypeConverter.localDateToSqlDate( d );
27+
log.info( "sql date : {}", t );
28+
Calendar c = Calendar.getInstance();
29+
c.setTime(t);
30+
Assert.assertEquals( TEST_YEAR, c.get( Calendar.YEAR ) );
2331
}
2432

2533
@Test
2634
public void testLocalDateTime() {
2735
LocalDateTime d = SQLTypeConverter.utilDateToLocalDateTime(Timestamp.valueOf( TEST_YEAR+"-05-05 11:30:00.000" ));
2836
log.info( "local date time : {}", d );
2937
Assert.assertEquals( TEST_YEAR, d.getYear() );
38+
Timestamp t = SQLTypeConverter.localDateTimeToTimestamp( d );
39+
log.info( "timestamp : {}", t );
40+
Calendar c = Calendar.getInstance();
41+
c.setTime(t);
42+
Assert.assertEquals( TEST_YEAR, c.get( Calendar.YEAR ) );
3043
}
3144

3245
}

0 commit comments

Comments
 (0)