Class ZonedTimestamp

java.lang.Object
io.debezium.time.ZonedTimestamp

public class ZonedTimestamp extends Object
A utility for converting various Java time representations into the STRING representation of the time and date in a particular time zone, and for defining a Kafka Connect Schema for zoned timestamp values.

The ISO date-time format includes the date, time (including fractional parts), and offset from UTC, such as '2011-12-03T10:15:30+01:00'.

Author:
Randall Hauch
See Also:
  • Field Details

    • FORMATTER

      public static final DateTimeFormatter FORMATTER
      The ISO date-time format includes the date, time (including fractional parts), and offset from UTC, such as '2011-12-03T10:15:30.030431+01:00'.
    • SCHEMA_NAME

      public static final String SCHEMA_NAME
      See Also:
  • Constructor Details

    • ZonedTimestamp

      private ZonedTimestamp()
  • Method Details

    • getDateTimeFormatter

      private static DateTimeFormatter getDateTimeFormatter(Integer fractionalWidth)
      Returns a DateTimeFormatter that ensures that exactly fractionalWidth number of digits are present in the nanosecond part of the datetime. If fractionWidth is null, then DateTimeFormatter.ISO_OFFSET_DATE_TIME formatter is used, which can have anywhere from 0-9 digits in the nanosecond part.
      Parameters:
      fractionalWidth - the optional component that specifies the exact number of digits to be present in a zoneddatetime formatted string.
      Returns:
      DateTimeFormatter containing exactly fractionalWidth number of digits in nanosecond part of the datetime. If null, DateTimeFormatter.ISO_OFFSET_DATE_TIME formatter is used, which can have anywhere from 0-9 digits in the nanosecond part.
    • builder

      public static org.apache.kafka.connect.data.SchemaBuilder builder()
      Returns a SchemaBuilder for a ZonedTimestamp. You can use the resulting SchemaBuilder to set additional schema settings such as required/optional, default value, and documentation.
      Returns:
      the schema builder
    • schema

      public static org.apache.kafka.connect.data.Schema schema()
      Returns a Schema for a ZonedTimestamp but with all other default Schema settings.
      Returns:
      the schema
      See Also:
    • toIsoString

      public static String toIsoString(Object value, ZoneId defaultZone, TemporalAdjuster adjuster, Integer fractionalWidth)
      Get the ISO 8601 formatted representation of the given LocalDateTime, LocalDate, LocalTime, Date, Date, Time, Timestamp, OffsetTime, or OffsetDateTime, ignoring any date portions of the supplied value.
      Parameters:
      value - the local or SQL date, time, or timestamp value; may not be null
      defaultZone - the time zone that should be used by default if the value does not have timezone information; may not be null
      adjuster - the optional component that adjusts the local date value before obtaining the epoch day; may be null if no adjustment is necessary
      fractionalWidth - the optional component that specifies the exact number of digits to be present in a zoneddatetime formatted string.
      Returns:
      the microseconds past midnight
      Throws:
      IllegalArgumentException - if the value is not an instance of the acceptable types
    • toIsoString

      public static String toIsoString(OffsetDateTime timestamp, TemporalAdjuster adjuster)
      Get the ISO 8601 formatted representation of the given OffsetDateTime.
      Parameters:
      timestamp - the timestamp value
      adjuster - the optional component that adjusts the local date value before obtaining the epoch day; may be null if no adjustment is necessary
      Returns:
      the ISO 8601 formatted string
    • toIsoString

      public static String toIsoString(ZonedDateTime timestamp, TemporalAdjuster adjuster, Integer fractionalWidth)
      Get the ISO 8601 formatted representation of the given ZonedDateTime.
      Parameters:
      timestamp - the timestamp value
      adjuster - the optional component that adjusts the local date value before obtaining the epoch day; may be null if no adjustment is necessary
      fractionalWidth - the optional component that specifies the exact number of digits to be present in a zoneddatetime formatted string.
      Returns:
      the ISO 8601 formatted string
    • toIsoString

      public static String toIsoString(OffsetTime timestamp, TemporalAdjuster adjuster)
      Get the ISO 8601 formatted representation of the given OffsetTime.
      Parameters:
      timestamp - the timestamp value
      adjuster - the optional component that adjusts the local date value before obtaining the epoch day; may be null if no adjustment is necessary
      Returns:
      the ISO 8601 formatted string
    • toIsoString

      public static String toIsoString(Date timestamp, ZoneId zoneId, TemporalAdjuster adjuster)
      Get the ISO 8601 formatted representation of the given Date or one of its JDBC subclasses, using the supplied timezone information.
      Parameters:
      timestamp - the timestamp value
      zoneId - the timezone identifier or offset where the timestamp is defined
      adjuster - the optional component that adjusts the local date value before obtaining the epoch day; may be null if no adjustment is necessary
      Returns:
      the ISO 8601 formatted string
    • toIsoString

      public static String toIsoString(Timestamp timestamp, ZoneId zoneId, TemporalAdjuster adjuster)
      Get the ISO 8601 formatted representation of the given Timestamp, which contains a date and time but has no timezone information.
      Parameters:
      timestamp - the JDBC timestamp value
      zoneId - the timezone identifier or offset where the timestamp is defined
      adjuster - the optional component that adjusts the local date value before obtaining the epoch day; may be null if no adjustment is necessary
      Returns:
      the ISO 8601 formatted string
    • toIsoString

      public static String toIsoString(Date date, ZoneId zoneId, TemporalAdjuster adjuster)
      Get the ISO 8601 formatted representation of the given Date, which contains a date but no time or timezone information.
      Parameters:
      date - the date value
      zoneId - the timezone identifier or offset where the date is defined
      adjuster - the optional component that adjusts the local date value before obtaining the epoch day; may be null if no adjustment is necessary
      Returns:
      the ISO 8601 formatted string
    • toIsoString

      public static String toIsoString(Time time, ZoneId zoneId, TemporalAdjuster adjuster)
      Get the ISO 8601 formatted representation of the given Time, which contains time but no date or timezone information.
      Parameters:
      time - the JDBC time value
      zoneId - the timezone identifier or offset where the time is defined
      adjuster - the optional component that adjusts the local date value before obtaining the epoch day; may be null if no adjustment is necessary
      Returns:
      the ISO 8601 formatted string