将字段类型设置为日期时间 [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.timestampkeen.created_at 以外的字段是否可以使用日期时间字段?

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

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

希望这在未来有所改变!