public final class CivilTimeEncoderPorted from ZetaSQL CivilTimeEncoder Original code can be found at: https://github.com/google/zetasql/blob/master/java/com/google/zetasql/CivilTimeEncoder.java Encoder for TIME and DATETIME values, according to civil_time encoding.
The valid range and number of bits required by each date/time field is as the following:
| Field | Range | #Bits | 
|---|---|---|
| Year | [1, 9999] | 14 | 
| Month | [1, 12] | 4 | 
| Day | [1, 31] | 5 | 
| Hour | [0, 23] | 5 | 
| Minute | [0, 59] | 6 | 
| Second | [0, 59]* | 6 | 
| Micros | [0, 999999] | 20 | 
| Nanos | [0, 999999999] | 30 | 
* Leap second is not supported.
When encoding the TIME or DATETIME into a bit field, larger date/time field is on the more significant side.
Static Methods
decodePacked64DatetimeMicros(long bitFieldDatetimeMicros)
public static LocalDateTime decodePacked64DatetimeMicros(long bitFieldDatetimeMicros)This method is obsolete. Use #decodePacked64DatetimeMicrosLocalDateTime(long) instead.
| Parameter | |
|---|---|
| Name | Description | 
| bitFieldDatetimeMicros | long | 
| Returns | |
|---|---|
| Type | Description | 
| org.threeten.bp.LocalDateTime | |
decodePacked64DatetimeMicrosLocalDateTime(long bitFieldDatetimeMicros)
public static LocalDateTime decodePacked64DatetimeMicrosLocalDateTime(long bitFieldDatetimeMicros)Decodes bitFieldDatetimeMicros as a java.time.LocalDateTime with microseconds
 precision.
Encoding is as the following:
    6         5         4         3         2         1
MSB 3210987654321098765432109876543210987654321098765432109876543210 LSB |--- year ---||m || D || H || M || S ||-------micros-----|
| Parameter | |
|---|---|
| Name | Description | 
| bitFieldDatetimeMicros | long | 
| Returns | |
|---|---|
| Type | Description | 
| LocalDateTime | |
decodePacked64TimeMicros(long bitFieldTimeMicros)
public static LocalTime decodePacked64TimeMicros(long bitFieldTimeMicros)This method is obsolete. Use #decodePacked64TimeMicrosLocalTime(long) instead.
| Parameter | |
|---|---|
| Name | Description | 
| bitFieldTimeMicros | long | 
| Returns | |
|---|---|
| Type | Description | 
| org.threeten.bp.LocalTime | |
decodePacked64TimeMicrosLocalTime(long bitFieldTimeMicros)
public static LocalTime decodePacked64TimeMicrosLocalTime(long bitFieldTimeMicros)Decodes bitFieldTimeMicros as a java.time.LocalTime with microseconds
 precision.
Encoding is as the following:
    6         5         4         3         2         1
MSB 3210987654321098765432109876543210987654321098765432109876543210 LSB | H || M || S ||-------micros-----|
See Also: #encodePacked64TimeMicros(LocalTime)
| Parameter | |
|---|---|
| Name | Description | 
| bitFieldTimeMicros | long | 
| Returns | |
|---|---|
| Type | Description | 
| LocalTime | |
encodePacked64DatetimeMicros(LocalDateTime dateTime)
public static long encodePacked64DatetimeMicros(LocalDateTime dateTime)This method is obsolete. Use #encodePacked64DatetimeMicrosLocalDateTime(java.time.LocalDateTime) instead.
| Parameter | |
|---|---|
| Name | Description | 
| dateTime | org.threeten.bp.LocalDateTime | 
| Returns | |
|---|---|
| Type | Description | 
| long | |
encodePacked64DatetimeMicrosLocalDateTime(LocalDateTime dateTime)
public static long encodePacked64DatetimeMicrosLocalDateTime(LocalDateTime dateTime)Encodes dateTime as a 8-byte integer with microseconds precision.
Encoding is as the following:
    6         5         4         3         2         1
MSB 3210987654321098765432109876543210987654321098765432109876543210 LSB |--- year ---||m || D || H || M || S ||-------micros-----|
See Also: #decodePacked64DatetimeMicros(long)
| Parameter | |
|---|---|
| Name | Description | 
| dateTime | LocalDateTime | 
| Returns | |
|---|---|
| Type | Description | 
| long | |
encodePacked64TimeMicros(LocalTime time)
public static long encodePacked64TimeMicros(LocalTime time)This method is obsolete. Use #encodePacked64TimeMicrosLocalTime(java.time.LocalTime) instead.
| Parameter | |
|---|---|
| Name | Description | 
| time | org.threeten.bp.LocalTime | 
| Returns | |
|---|---|
| Type | Description | 
| long | |
encodePacked64TimeMicrosLocalTime(LocalTime time)
public static long encodePacked64TimeMicrosLocalTime(LocalTime time)Encodes time as a 8-byte integer with microseconds precision.
Encoding is as the following:
    6         5         4         3         2         1
MSB 3210987654321098765432109876543210987654321098765432109876543210 LSB | H || M || S ||-------micros-----|
See Also: #decodePacked64TimeMicros(long), #encodePacked64TimeMicros(LocalTime)
| Parameter | |
|---|---|
| Name | Description | 
| time | LocalTime | 
| Returns | |
|---|---|
| Type | Description | 
| long | |