Class InstantAsStringAttributeConverter
java.lang.Object
software.amazon.awssdk.enhanced.dynamodb.internal.converter.attribute.InstantAsStringAttributeConverter
- All Implemented Interfaces:
AttributeConverter<Instant>
@ThreadSafe
@Immutable
public final class InstantAsStringAttributeConverter
extends Object
implements AttributeConverter<Instant>
A converter between
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().
-
Method Summary
Modifier and TypeMethodDescriptionTheAttributeValueTypethat a converter stores and reads values from DynamoDB via theAttributeValueclass.create()transformFrom(Instant input) Convert the provided Java object into anAttributeValue.transformTo(AttributeValue input) Convert the providedAttributeValueinto a Java object.type()The type supported by this converter.
-
Method Details
-
create
-
type
Description copied from interface:AttributeConverterThe type supported by this converter.- Specified by:
typein interfaceAttributeConverter<Instant>
-
attributeValueType
Description copied from interface:AttributeConverterTheAttributeValueTypethat a converter stores and reads values from DynamoDB via theAttributeValueclass.- Specified by:
attributeValueTypein interfaceAttributeConverter<Instant>
-
transformFrom
Description copied from interface:AttributeConverterConvert the provided Java object into anAttributeValue. This will raise aRuntimeExceptionif 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());- Specified by:
transformFromin interfaceAttributeConverter<Instant>
-
transformTo
Description copied from interface:AttributeConverterConvert the providedAttributeValueinto a Java object. This will raise aRuntimeExceptionif 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);- Specified by:
transformToin interfaceAttributeConverter<Instant>
-