Package io.debezium.time
Class NanoTimestamp
java.lang.Object
io.debezium.time.NanoTimestamp
A utility for converting various Java time representations into the signed
INT64 number of
nanoseconds past epoch, and for defining a Kafka Connect Schema for timestamp values with no timezone
information.- Author:
- Randall Hauch
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic org.apache.kafka.connect.data.SchemaBuilderbuilder()Returns aSchemaBuilderfor aNanoTimestamp.static org.apache.kafka.connect.data.Schemaschema()Returns a Schema for aNanoTimestampbut with all other default Schema settings.static longtoEpochNanos(Object value, TemporalAdjuster adjuster) private static longtoEpochNanos(LocalDate date) Get the number of nanoseconds past epoch of the givenLocalDate.private static longtoEpochNanos(LocalDateTime timestamp) Get the number of nanoseconds past epoch of the givenLocalDateTime.
-
Field Details
-
SCHEMA_NAME
- See Also:
-
-
Constructor Details
-
NanoTimestamp
private NanoTimestamp()
-
-
Method Details
-
builder
public static org.apache.kafka.connect.data.SchemaBuilder builder()Returns aSchemaBuilderfor aNanoTimestamp. The resulting schema will describe a field with the "io.debezium.time.NanoTimestamp" as thenameandINT64for the literal type storing the number of nanoseconds past midnight.You can use the resulting SchemaBuilder to set or override 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 aNanoTimestampbut with all other default Schema settings. The schema describes a field with the "io.debezium.time.NanoTimestamp" as thenameandINT64for the literal type storing the number of nanoseconds past midnight.- Returns:
- the schema
- See Also:
-
toEpochNanos
Get the number of nanoseconds past epoch of the givenLocalDateTime,LocalDate,LocalTime,Date,Date,Time, orTimestamp.- Parameters:
value- the local or SQL date, time, or timestamp value; may not be nulladjuster- the optional component that adjusts the local date value before obtaining the epoch day; may be null if no adjustment is necessary- Returns:
- the epoch nanoseconds
- Throws:
IllegalArgumentException- if the value is not an instance of the acceptable types
-
toEpochNanos
Get the number of nanoseconds past epoch of the givenLocalDateTime.- Parameters:
timestamp- the Java timestamp value- Returns:
- the epoch nanoseconds
-
toEpochNanos
Get the number of nanoseconds past epoch of the givenLocalDate.- Parameters:
date- the Java date value- Returns:
- the epoch nanoseconds
-