Установка типа поля на дату и время [keen-io]

У меня есть объект, который я отслеживаю в Kee-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?


person Broonix    schedule 18.08.2015    source источник


Ответы (1)


К сожалению, datetime не является одним из четырех поддерживаемых в настоящее время типов данных (https://keen.io/docs/api/#inferred-data-types). Вы правы, что сейчас они поддерживаются только для keen.timestamp и keen.created_at. Я передал полезные отзывы команде Keen по этому варианту использования.

Один из способов обхода - преобразование даты и времени в секунды из эпохи. Это не идеально, но может работать. В нем есть некоторая логика, и он поможет вам делать запросы. Если вы хотите отобразить время, вам нужно будет преобразовать его обратно в удобочитаемую строку.

Надеюсь, это изменится в будущем!

person tbarn    schedule 31.08.2015