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 betweenInstantandAttributeValue.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"
Instantfor 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 byZoneOffsetAttributeConverter. Offset and zoned times will be automatically converted to the equivalentInstant.This serialization is lexicographically orderable when the year is not negative.
This can be created via
create().
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description AttributeValueTypeattributeValueType()TheAttributeValueTypethat a converter stores and reads values from DynamoDB via theAttributeValueclass.static InstantAsStringAttributeConvertercreate()AttributeValuetransformFrom(Instant input)Convert the provided Java object into anAttributeValue.InstanttransformTo(AttributeValue input)Convert the providedAttributeValueinto a Java object.EnhancedType<Instant>type()The type supported by this converter.
-
-
-
Method Detail
-
create
public static InstantAsStringAttributeConverter create()
-
type
public EnhancedType<Instant> type()
Description copied from interface:AttributeConverterThe type supported by this converter.- Specified by:
typein interfaceAttributeConverter<Instant>
-
attributeValueType
public AttributeValueType attributeValueType()
Description copied from interface:AttributeConverterTheAttributeValueTypethat a converter stores and reads values from DynamoDB via theAttributeValueclass.- Specified by:
attributeValueTypein interfaceAttributeConverter<Instant>
-
transformFrom
public AttributeValue transformFrom(Instant input)
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
public Instant transformTo(AttributeValue input)
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>
-
-