2015-03-29 2 views
0

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

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

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

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

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

ответ

0

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()); 

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