我在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.timestampkeen.created_at以外的其他字段上是否有日期时间字段?

最佳答案

遗憾的是,日期时间不是当前支持的四种推断数据类型(https://keen.io/docs/api/#inferred-data-types)之一。您是正确的,目前仅keen.timestampkeen.created_at支持它们。我将有关此用例的有用反馈传递给了Keen团队。

一种解决方法是将日期时间从纪元转换为秒。这不是理想的方法,但是可以工作。它具有一些逻辑,可以帮助您进行查询。当您想要显示时间时,您将需要转换回可读的字符串。

希望将来会改变!

10-08 09:33