Skip to main content
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

HandlerJava TypePurpose
LocalDateTimeTypeHandlerjava.time.LocalDateTimeReads/writes LocalDateTime data via getObject/setObject
LocalTimeTypeHandlerjava.time.LocalTimeReads/writes LocalTime data via getObject/setObject
OffsetDateTimeTypeHandlerjava.time.OffsetDateTimeReads/writes OffsetDateTime data via getObject/setObject
OffsetTimeTypeHandlerjava.time.OffsetTimeReads/writes OffsetTime data via getObject/setObject
SqlDateTypeHandlerjava.sql.DateReads/writes Date data via getObject/setObject
SqlTimestampTypeHandlerjava.sql.TimestampReads/writes Timestamp data via getObject/setObject
SqlTimeTypeHandlerjava.sql.TimeReads/writes Time data via getObject/setObject

Using java.util.Date

HandlerJava TypePurpose
SqlDateAsDateHandlerjava.util.DateReads/writes java.util.Date data via getDate/setDate
SqlTimeAsDateTypeHandlerjava.util.DateReads/writes java.util.Date data via getTime/setTime (date portion is discarded)
SqlTimestampAsDateTypeHandlerjava.util.DateReads/writes java.util.Date data via getTimestamp/setTimestamp

Using java.time.Year

HandlerJava TypePurpose
IntegerAsYearTypeHandlerjava.time.YearReads/writes a numeric value representing the year
StringAsYearTypeHandlerjava.time.YearReads/writes a string-form numeric value representing the year
SqlTimestampAsYearTypeHandlerjava.time.YearReads/writes Year data via getTimestamp/setTimestamp (month/day/time are discarded)

Using java.time.YearMonth

HandlerJava TypePurpose
IntegerAsYearMonthTypeHandlerjava.time.YearMonthReads/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
StringAsYearMonthTypeHandlerjava.time.YearMonthString format yyyy-MM
SqlTimestampAsYearMonthTypeHandlerjava.time.YearMonthReads/writes YearMonth data via getTimestamp/setTimestamp (day/time are discarded)

Using java.time.Month

HandlerJava TypePurpose
IntegerAsMonthTypeHandlerjava.time.MonthReads/writes a number between 1 and 12 representing the month
StringAsMonthTypeHandlerjava.time.MonthString-form number representing the month, value range 1-12
SqlTimestampAsMonthTypeHandlerjava.time.MonthReads/writes Month data via getTimestamp/setTimestamp (year/day/time are discarded)

Using java.time.MonthDay

HandlerJava TypePurpose
IntegerAsMonthDayTypeHandlerjava.time.MonthDayReads/writes a 4-digit number where the first 2 digits represent the month and the last 2 represent the day
StringAsMonthDayTypeHandlerjava.time.MonthDayString format MM-dd (e.g. 01-03)
SqlTimestampAsMonthDayTypeHandlerjava.time.MonthDayReads/writes MonthDay data via getTimestamp/setTimestamp (year/time are discarded)

Type Conversions

HandlerJava TypePurpose
SqlTimestampAsLocalDateTimeTypeHandlerjava.time.LocalDateTimeReads/writes LocalDateTime via getTimestamp/setTimestamp
SqlTimestampAsLocalDateTypeHandlerjava.time.LocalDateReads/writes LocalDate via getTimestamp/setTimestamp, missing time is filled with 00:00
SqlTimestampAsLocalTimeTypeHandlerjava.time.LocalTimeReads/writes LocalTime via getTimestamp/setTimestamp, missing date is filled with 0000-01-01
LocalDateTimeAsLocalTimeTypeHandlerjava.time.LocalTimeReads/writes LocalDateTime via getObject/setObject, auto-converts to LocalTime, missing date is filled with 0000-01-01
LocalDateTimeAsLocalDateTypeHandlerjava.time.LocalDateReads/writes LocalDateTime via getObject/setObject, auto-converts to LocalDate, missing time is filled with 00:00
JapaneseDateAsSqlDateTypeHandlerjava.time.chrono.JapaneseDateReads/writes JapaneseDate data via getDate/setDate
OffsetDateTimeAsZonedDateTimeTypeHandlerjava.time.ZonedDateTimeReads/writes OffsetDateTime via getObject/setObject, auto-converts to ZonedDateTime
SqlTimestampAsInstantTypeHandlerjava.time.InstantReads/writes Instant data via getTimestamp/setTimestamp

Automatic Timezone Conversion

Automatic timezone conversion — timezone reads and writes are converted to UTC.

HandlerJava TypePurpose
SqlTimestampAsUTCOffsetDateTimeTypeHandlerjava.time.OffsetDateTimeAutomatic timezone conversion, reads/writes Timestamp data using OffsetDateTime
SqlTimestampAsUTCOffsetTimeTypeHandlerjava.time.OffsetTimeAutomatic timezone conversion, reads/writes Timestamp data using OffsetTime

Special Support

HandlerJava TypePurpose
JulianDayTypeHandlerjava.time.LocalDateStores dates using Julian Day Number, supports BCE dates. Stored as BIGINT in the database
PgDateTypeHandlerjava.time.LocalDatePostgreSQL 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 YearMeaning
Year 11 CE (1 AD)
Year 01 BCE (1 BC)
Year -12 BCE (2 BC)
Year -99100 BCE (100 BC)