2013-04-02 2 views
22

У меня есть объект JSON, которые имеют одно поле, которое является дата рождения:Как получить дату из объекта JSON

JSONObject obj = new JSONObject(response); 
User user = new User(); 
user.setuserID(obj.getString("userID")); 
user.setisMale(obj.getBoolean("isMale")); 
user.setEmail(obj.getString("email")); 
// user.setBirthdate(obj.getDate("birthdate")); 
user.setLastName(obj.getString("lastName")); 
user.setFirstName(obj.getString("firstName")); 

Но метод getDate() не существует в JSONObject.
Как установить дату рождения в объекте пользователя?

+1

Как ваша дата представленный в ответ JSON? Думаю, строка? Показать JSON. –

+0

Это как: «Дата рождения»: «2012-08-01» – user2144555

ответ

37

Вы можете сделать, как показано ниже,

String dateStr = obj.getString("birthdate"); 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
Date birthDate = sdf.parse(dateStr); 
//then 
user.setBirthdate(birthDate); 

Надежда, чтобы помочь вам :)

+0

Это привело, но печатается' Wed Aug 01 00:00:00 BST 2012', даже мой формат 'SimpleDateFormat (« yyyy-MM-dd »)' – user2144555

+0

ваш результат нормальный, потому что формат partten is «yyyy-MM-dd», используйте «yyyy-MM-dd HH: mm: ss», чтобы получить часы, минуты и секунды. –

+0

@ Bob.Z Я получаю строку с датой вроде этого «2015-12-25 00:00:00» Я хочу форматировать как это »2015-12-25 00:00:00 UTC». в каком формате я должен писать в 'SimpleDateFormat («? »)'. –

4

Как правило, дата передается как миллисекунды или как форматированная строка. Таким образом, в зависимости от вашего JSON вы можете использовать либо использовать new Date(json.getLong(milliseconds)) или если дата в строке

String birthdate = json.getString(date);//"2013-03-26" 
DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); 
+0

В результате, но это печатает 'Wed Aug 01 00:00:00 BST 2012', даже мой формат« SimpleDateFormat »(« yyyy-MM-dd »)) ' – user2144555

Смежные вопросы