@ThreadSafe @Immutable public final class InstantAsStringAttributeConverter extends Object implements AttributeConverter<Instant>
Instant
and AttributeValue
.
This stores values in DynamoDB as a string.
Values are stored in ISO-8601 format, with nanosecond precision and a time zone of UTC.
Examples:
Instant.EPOCH.plusSeconds(1)
is stored as
an AttributeValue with the String "1970-01-01T00:00:01Z"}Instant.EPOCH.minusSeconds(1)
is stored as
an AttributeValue with the String "1969-12-31T23:59:59Z"}Instant.EPOCH.plusMillis(1)
is stored as
an AttributeValue with the String "1970-01-01T00:00:00.001Z"}Instant.EPOCH.minusMillis(1)
is stored as
an AttributeValue with the String "1969-12-31T23:59:59.999Z"}Instant.EPOCH.plusNanos(1)
is stored as
an AttributeValue with the String "1970-01-01T00:00:00.000000001Z"}Instant.EPOCH.minusNanos(1)
is stored as
an AttributeValue with the String "1969-12-31T23:59:59.999999999Z"}Instant
for more details on the serialization format.
This converter can read any values written by itself, or values with zero offset written by
OffsetDateTimeAsStringAttributeConverter
, and values with zero offset and without time zone named written by
ZoneOffsetAttributeConverter
. Offset and zoned times will be automatically converted to the
equivalent Instant
.
This serialization is lexicographically orderable when the year is not negative.
This can be created via create()
.
Modifier and Type | Method and Description |
---|---|
AttributeValueType |
attributeValueType()
The
AttributeValueType that a converter stores and reads values
from DynamoDB via the AttributeValue class. |
static InstantAsStringAttributeConverter |
create() |
AttributeValue |
transformFrom(Instant input)
Convert the provided Java object into an
AttributeValue . |
Instant |
transformTo(AttributeValue input)
Convert the provided
AttributeValue into a Java object. |
EnhancedType<Instant> |
type()
The type supported by this converter.
|
public static InstantAsStringAttributeConverter create()
public EnhancedType<Instant> type()
AttributeConverter
type
in interface AttributeConverter<Instant>
public AttributeValueType attributeValueType()
AttributeConverter
AttributeValueType
that a converter stores and reads values
from DynamoDB via the AttributeValue
class.attributeValueType
in interface AttributeConverter<Instant>
public AttributeValue transformFrom(Instant input)
AttributeConverter
AttributeValue
. This will raise a RuntimeException
if the
conversion fails, or the input is null.
Example:
InstantAsStringAttributeConverter converter = InstantAsStringAttributeConverter.create();
assertEquals(converter.transformFrom(Instant.EPOCH),
EnhancedAttributeValue.fromString("1970-01-01T00:00:00Z").toAttributeValue());
transformFrom
in interface AttributeConverter<Instant>
public Instant transformTo(AttributeValue input)
AttributeConverter
AttributeValue
into a Java object. This will raise a RuntimeException
if the
conversion fails, or the input is null.
Example:
InstantAsStringAttributeConverter converter = InstantAsStringAttributeConverter.create();
assertEquals(converter.transformTo(EnhancedAttributeValue.fromString("1970-01-01T00:00:00Z").toAttributeValue()),
Instant.EPOCH);
transformTo
in interface AttributeConverter<Instant>
Copyright © 2020. All rights reserved.