Приведение даты Meteor.js DDP к дате Java

Я использую библиотеку Android DDP Client для подключения моего клиента Android к Meteor-JS сервер. Когда я получаю новый объект, я использую следующий код для анализа поля «createdAt»

private Map<String, Object> fields;
private Date timestamp;
/*...*/
timestamp = (Date) fields.get("createdAt");

Я ошибочно предположил, что он должен иметь дату. тип. И я получаю исключение с сообщением об ошибке:

com.google.gson.internal.LinkedHashTreeMap cannot be cast to java.util.Date

Как правильно разобрать дату, отправленную Метеором?


person naXa    schedule 29.03.2015    source источник


Ответы (1)


Meteor-JS отправляет вам JSON.

// The Date value in the JSON response is a Unix timestamp.
// It gives the number of milliseconds since 1 January 1970 00:00:00 UTC.
// So we can do:
Double jsonDate = ((Map<String, Double>) fields.get("createdAt")).get("$date");
timestamp = new Date(jsonDate.longValue());

ps. Я рекомендую хранить метку времени как поле long вместо Date.

person naXa    schedule 29.03.2015