0

我的应用程序中有一个要求,即我需要定期检查 DynamoDB 表的更新。准确地说,我需要检查的字段不是哈希键,因此我无法查询——我需要扫描。我正在尝试构建的扫描过滤器需要检查包含日期的字段(在表中编码为字符串),而我使用的逻辑是询问过去一小时内创建或更新的所有记录。我正在使用的片段如下:

 Condition scanFilterCondition = new Condition()
.withComparisonOperator(ComparisonOperator.BETWEEN.toString())
.withAttributeValueList(new AttributeValue().withS(new Date(currentTime-3600000).toString()), 
new AttributeValue().withS(new Date(currentTime).toString()));

它似乎是正确的,但是它似乎总是返回一个空集,所以它显然是不正确的。

我一直在谷歌搜索以了解为什么这是不正确的,但是我没有发现有关扫描/查询 DyanmoDB 日期的任何信息。

关于故障的任何想法?

4

1 回答 1

0

表中的字符串是否作为 EPOCH 时间戳记(例如 1382199953)?有或没有毫秒?

默认toString()返回基于语言环境的人类可读字符串(例如dow mon dd hh:mm:ss zzz yyyy)。

如果不是这种情况,请使用相关领域的示例数据进行评论。

使用 Joda编辑以支持ISODateTime格式:

DateTimeFormatter dateFormatter = ISODateTimeFormat.dateTime().withZoneUTC(); String isoDate = dateFormatter.print(currentTime);

于 2013-10-19T16:30:44.120 回答