Hint
This article is generated by AI translation.
Date/Time Type Handlers
Date/time type handlers are located in the net.hasor.dbvisitor.types.handler.time package.
Common Handlers
| Handler | Java Type | Purpose |
|---|---|---|
LocalDateTimeTypeHandler | java.time.LocalDateTime | Reads/writes LocalDateTime data via getObject/setObject |
LocalTimeTypeHandler | java.time.LocalTime | Reads/writes LocalTime data via getObject/setObject |
OffsetDateTimeTypeHandler | java.time.OffsetDateTime | Reads/writes OffsetDateTime data via getObject/setObject |
OffsetTimeTypeHandler | java.time.OffsetTime | Reads/writes OffsetTime data via getObject/setObject |
SqlDateTypeHandler | java.sql.Date | Reads/writes Date data via getObject/setObject |
SqlTimestampTypeHandler | java.sql.Timestamp | Reads/writes Timestamp data via getObject/setObject |
SqlTimeTypeHandler | java.sql.Time | Reads/writes Time data via getObject/setObject |
Using java.util.Date
| Handler | Java Type | Purpose |
|---|---|---|
SqlDateAsDateHandler | java.util.Date | Reads/writes java.util.Date data via getDate/setDate |
SqlTimeAsDateTypeHandler | java.util.Date | Reads/writes java.util.Date data via getTime/setTime (date portion is discarded) |
SqlTimestampAsDateTypeHandler | java.util.Date | Reads/writes java.util.Date data via getTimestamp/setTimestamp |
Using java.time.Year
| Handler | Java Type | Purpose |
|---|---|---|
IntegerAsYearTypeHandler | java.time.Year | Reads/writes a numeric value representing the year |
StringAsYearTypeHandler | java.time.Year | Reads/writes a string-form numeric value representing the year |
SqlTimestampAsYearTypeHandler | java.time.Year | Reads/writes Year data via getTimestamp/setTimestamp (month/day/time are discarded) |
Using java.time.YearMonth
| Handler | Java Type | Purpose |
|---|---|---|
IntegerAsYearMonthTypeHandler | java.time.YearMonth | Reads/writes a number where the last 2 digits represent the month, the rest represents the year. Values under 2 digits are treated as month. 0 means 0000-01 |
StringAsYearMonthTypeHandler | java.time.YearMonth | String format yyyy-MM |
SqlTimestampAsYearMonthTypeHandler | java.time.YearMonth | Reads/writes YearMonth data via getTimestamp/setTimestamp (day/time are discarded) |
Using java.time.Month
| Handler | Java Type | Purpose |
|---|---|---|
IntegerAsMonthTypeHandler | java.time.Month | Reads/writes a number between 1 and 12 representing the month |
StringAsMonthTypeHandler | java.time.Month | String-form number representing the month, value range 1-12 |
SqlTimestampAsMonthTypeHandler | java.time.Month | Reads/writes Month data via getTimestamp/setTimestamp (year/day/time are discarded) |
Using java.time.MonthDay
| Handler | Java Type | Purpose |
|---|---|---|
IntegerAsMonthDayTypeHandler | java.time.MonthDay | Reads/writes a 4-digit number where the first 2 digits represent the month and the last 2 represent the day |
StringAsMonthDayTypeHandler | java.time.MonthDay | String format MM-dd (e.g. 01-03) |
SqlTimestampAsMonthDayTypeHandler | java.time.MonthDay | Reads/writes MonthDay data via getTimestamp/setTimestamp (year/time are discarded) |
Type Conversions
| Handler | Java Type | Purpose |
|---|---|---|
SqlTimestampAsLocalDateTimeTypeHandler | java.time.LocalDateTime | Reads/writes LocalDateTime via getTimestamp/setTimestamp |
SqlTimestampAsLocalDateTypeHandler | java.time.LocalDate | Reads/writes LocalDate via getTimestamp/setTimestamp, missing time is filled with 00:00 |
SqlTimestampAsLocalTimeTypeHandler | java.time.LocalTime | Reads/writes LocalTime via getTimestamp/setTimestamp, missing date is filled with 0000-01-01 |
LocalDateTimeAsLocalTimeTypeHandler | java.time.LocalTime | Reads/writes LocalDateTime via getObject/setObject, auto-converts to LocalTime, missing date is filled with 0000-01-01 |
LocalDateTimeAsLocalDateTypeHandler | java.time.LocalDate | Reads/writes LocalDateTime via getObject/setObject, auto-converts to LocalDate, missing time is filled with 00:00 |
JapaneseDateAsSqlDateTypeHandler | java.time.chrono.JapaneseDate | Reads/writes JapaneseDate data via getDate/setDate |
OffsetDateTimeAsZonedDateTimeTypeHandler | java.time.ZonedDateTime | Reads/writes OffsetDateTime via getObject/setObject, auto-converts to ZonedDateTime |
SqlTimestampAsInstantTypeHandler | java.time.Instant | Reads/writes Instant data via getTimestamp/setTimestamp |
Automatic Timezone Conversion
Automatic timezone conversion — timezone reads and writes are converted to UTC.
| Handler | Java Type | Purpose |
|---|---|---|
SqlTimestampAsUTCOffsetDateTimeTypeHandler | java.time.OffsetDateTime | Automatic timezone conversion, reads/writes Timestamp data using OffsetDateTime |
SqlTimestampAsUTCOffsetTimeTypeHandler | java.time.OffsetTime | Automatic timezone conversion, reads/writes Timestamp data using OffsetTime |
Special Support
| Handler | Java Type | Purpose |
|---|---|---|
JulianDayTypeHandler | java.time.LocalDate | Stores dates using Julian Day Number, supports BCE dates. Stored as BIGINT in the database |
PgDateTypeHandler | java.time.LocalDate | PostgreSQL DATE type specific, supports BCE dates (BC suffix format). Annotated with @NoCache |
JulianDayTypeHandler
Julian Day Number is a date representation method commonly used in astronomy, counting continuously from January 1, 4713 BCE. Stored as BIGINT in the database, it avoids conversion issues between different calendar systems.
Applicable scenarios: when you need to handle BCE dates, or ensure date consistency across database systems.
PgDateTypeHandler
PostgreSQL supports using a BC suffix to represent BCE dates (e.g. 0100-01-01 BC represents 100 BCE). Java LocalDate uses ISO 8601 year representation:
| Java Year | Meaning |
|---|---|
| Year 1 | 1 CE (1 AD) |
| Year 0 | 1 BCE (1 BC) |
| Year -1 | 2 BCE (2 BC) |
| Year -99 | 100 BCE (100 BC) |