将字段类型设置为日期时间 [keen-io]
Setting field type to datetime [keen-io]
我有一个在 keen-io 中跟踪的对象,它有几个日期字段。我希望 Keen 将这些保留为 DateTime 字段。这样我就可以进行过滤和排序。
我正在使用地图添加格式为 ISO-8601 的日期。
Map<String, Object> o = new HashMap<String, Object>();
o.put("deliveryDate", formatDate(deliveryDate));
o.put("completionDate", formatDate(completionDate));
o.put("assignedDate", formatDate(assignedDate));
其中 formatDate 看起来像:
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
protected String formatDate(Calendar date) {
return dateFormat.format(date.getTime());
}
当事件到达我敏锐的仪表板时,该字段始终被视为字符串而不是日期时间。
我是否遗漏了文档中找不到的某些步骤? keen.timestamp
和 keen.created_at
以外的字段是否可以使用日期时间字段?
遗憾的是,日期时间不是当前支持的四种推断数据类型之一 (https://keen.io/docs/api/#inferred-data-types)。你是对的,他们现在只支持 keen.timestamp
和 keen.created_at
。我将有关此用例的有用反馈传递给了 Keen 团队。
一种解决方法是将您的日期时间从纪元转换为秒数。这并不理想,但它可以工作。它有一些逻辑,可以帮助您进行查询。当你想显示时间时,你需要转换回可读的字符串。
希望这在未来有所改变!
我有一个在 keen-io 中跟踪的对象,它有几个日期字段。我希望 Keen 将这些保留为 DateTime 字段。这样我就可以进行过滤和排序。
我正在使用地图添加格式为 ISO-8601 的日期。
Map<String, Object> o = new HashMap<String, Object>();
o.put("deliveryDate", formatDate(deliveryDate));
o.put("completionDate", formatDate(completionDate));
o.put("assignedDate", formatDate(assignedDate));
其中 formatDate 看起来像:
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
protected String formatDate(Calendar date) {
return dateFormat.format(date.getTime());
}
当事件到达我敏锐的仪表板时,该字段始终被视为字符串而不是日期时间。
我是否遗漏了文档中找不到的某些步骤? keen.timestamp
和 keen.created_at
以外的字段是否可以使用日期时间字段?
遗憾的是,日期时间不是当前支持的四种推断数据类型之一 (https://keen.io/docs/api/#inferred-data-types)。你是对的,他们现在只支持 keen.timestamp
和 keen.created_at
。我将有关此用例的有用反馈传递给了 Keen 团队。
一种解决方法是将您的日期时间从纪元转换为秒数。这并不理想,但它可以工作。它有一些逻辑,可以帮助您进行查询。当你想显示时间时,你需要转换回可读的字符串。
希望这在未来有所改变!