我正在使用DocumentClient(http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html)来更轻松地使用DynamoDB。但是,似乎它遇到了Date对象的问题。我知道DynamoDB需要专门格式化Date (as ISO8601 millisecond-precision string, shifted to UTC)
的日期。
DocumentClient是不是处理这个问题,还是需要在Date对象上设置一些东西?
目前,我刚刚通过toString()
将值转换为字符串。
expires_at
值具体为:
这个在DyanmoDB项目中不包括expires_at
。
{
Item:
{
id: 'session',
credentials:
{
access_token: '',
refresh_token: '',
token_type: 'Bearer',
expires_in: 3599,
expires_at: 2017-04-17T18:48:03.608Z
}
},
TableName: 'table'
}
这个将包含它:
{
Item:
{
id: 'session',
credentials:
{
access_token: '',
refresh_token: '',
token_type: 'Bearer',
expires_in: 3599,
expires_at: 'Mon Apr 17 2017 18:50:24 GMT+0000 (UTC)'
}
},
TableName: 'table'
}
答案 0 :(得分:2)
DocumentClient只是DynamoDB的抽象层。因此,如果DynamoDB中不支持Date
数据类型,则DocumentClient将不支持它。 (见DynamoDB Data Types)
您可以使用toISOString()方法传递ISO 8601字符串。例如:
var expires = new Date();
expires.setTime(expires.getTime() + (60*60*1000)); // Add 1 hour.
{
Item:
{
id: 'session',
credentials:
{
access_token: '',
refresh_token: '',
token_type: 'Bearer',
expires_in: 3599,
expires_at: expires.toISOString()
}
},
TableName: 'table'
}