【问题标题】:How to get a Date from a JSON object如何从 JSON 对象中获取日期
【发布时间】:2013-03-23 13:40:23
【问题描述】:

我有一个 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"));

但是JSONObject中不存在getDate()方法。
如何在我的用户对象中设置生日?

【问题讨论】:

  • 您的日期在 JSON 响应中是如何表示的?我猜是一个字符串?显示 JSON。
  • 就像:"birthdate":"2012-08-01"

标签: java json date object getdate


【解决方案1】:

你可以像下面这样,

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

希望能帮到你:)

【讨论】:

  • 结果,但打印的是Wed Aug 01 00:00:00 BST 2012,甚至我的格式是SimpleDateFormat("yyyy-MM-dd")
  • 你的结果是正常的,因为格式partten是“yyyy-MM-dd”,请用“yyyy-MM-dd HH:mm:ss”来获取时分秒。跨度>
  • @Bob.Z 我得到像这样的日期字符串“2015-12-25 00:00:00”我想像这样格式化“2015-12-25 00:00:00 UTC”。我应该在SimpleDateFormat("?") 中写哪种格式。
  • 我更喜欢在线的 new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").parse(dateStr)
【解决方案2】:

通常,日期以毫秒或格式化字符串的形式传递。因此,根据您的 json,您可以使用 new Date(json.getLong(milliseconds)) 或者如果日期在字符串中

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

【讨论】:

  • 结果,但打印的是Wed Aug 01 00:00:00 BST 2012,甚至我的格式是SimpleDateFormat("yyyy-MM-dd")
猜你喜欢
  • 1970-01-01
  • 2011-01-02
  • 1970-01-01
  • 1970-01-01
  • 2017-09-04
  • 2016-06-25
  • 2012-03-18
  • 1970-01-01
相关资源
最近更新 更多