2019.04.14
日時を扱うためにはAWSDateTime型を利用する。
GraphQLのスキーマでは以下のように使用できる。
type Post {
id: ID
title: String!
content: String!
createdAt: AWSDateTime!
}
例えば上のスキーマで、createdAtに投稿日時を自動的に登録したい場合はリクエストマッピングテンプレートに以下のように書くことで実現できる。
#set($nowISO8601 = "${util.time.nowISO8601()}")
{
"version" : "2017-02-28",
"operation" : "PutItem",
"key" : {
"id": $util.dynamodb.toDynamoDBJson("$util.autoId()"),
},
"attributeValues" : {
"title": $util.dynamodb.toDynamoDBJson("$ctx.args.input.title"),
"content": $util.dynamodb.toDynamoDBJson("$ctx.args.input.content"),
"createdAt": $util.dynamodb.toDynamoDBJson("$nowISO8601"),
}
}
AWSDateTime型で宣言した属性は、DynamoDBには 2019-04-11T04:59:22.088Z
のような形式で保存される。
JavaScriptから利用するには、これをそのままDateクラスの引数に渡せばよい。
new Date('2019-04-11T04:59:22.088Z')
// => Thu Apr 11 2019 13:59:22 GMT+0900 (日本標準時)