当前位置: 首页 > 面试题库 >

JSON日期到Java日期?

刁冠宇
2023-03-14
问题内容

我在任何地方都找不到。我从返回标准JSON日期的API中获取了一些JSON。您可以通过在JavaScript控制台中运行以下代码来查看格式:

> new Date().toJSON();
"2010-10-27T11:58:22.973Z"

好吧,实际上,我正在使用的API不会返回毫秒部分,有时会返回一个时区而不是Z,因此日期看起来可能像以下任何一个:

  • 2010-10-27T11:58:22Z
  • 2010-10-27T11:58:22+03:00

解析这些日期有点麻烦。有没有办法使用解析这些日期org.json

我当前的解决方案是:

public static Date parseDateTime(String dateString) {
    if (dateString == null) return null;
    DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
    if (dateString.contains("T")) dateString = dateString.replace('T', ' ');
    if (dateString.contains("Z")) dateString = dateString.replace("Z", "+0000");
    else
        dateString = dateString.substring(0, dateString.lastIndexOf(':')) + dateString.substring(dateString.lastIndexOf(':')+1);
    try {
        return fmt.parse(dateString);
    }
    catch (ParseException e) {
        Log.e(Const.TAG, "Could not parse datetime: " + dateString);
        return null;
    }
}

啊!


问题答案:

该DateTime格式实际上是ISO 8601
DateTime。JSON没有为日期/时间指定任何特定格式。如果您对Google感兴趣,就会发现有很多实现可以用Java解析。

这是一个

如果您愿意使用Java内置的Date / Time / Calendar类之外的其他东西,我也建议您使用Joda Time。他们提供了(其中包括)ISODateTimeFormat解析此类字符串的功能。



 类似资料:
  • 问题内容: 如何将特定日期从Java存储到数据库?(不仅是今天的日期,而且还有用户想要指定的一些日期) 问题答案: 用 类型和被假定分别用于设置日期和时间戳字段。阅读他们的文档,了解它们之间以及与和之间的区别。 通常,您会从用户那里获得一个Java日期()。您使用将该时间转换为自纪元以来的毫秒数,然后转换回a 或如我所示。

  • 问题内容: 我的json 响应 包含一个 CreatedOn 日期: 我需要将 CreatedOn 转换为简单的日期格式,并 计算从CreatedOn日期到当前日期的差异天数。 当我调试下面的代码字符串 CreatedOn时 显示一个空值。怎么会? 问题答案: 要么 考虑使用JSON方法而不是包含。JSON具有“ has()”,用于验证密钥是否存在。 您还应该确保首先尝试{}捕获{}字符串,以确保

  • 问题内容: 我有来自API的Date格式,如下所示: 这是YYYY-DD-MM HH:MM am / pm GMT时间戳。我将此值映射到POJO中的Date变量。显然,其显示转换错误。 我想知道两件事: 与Jackson进行转换时,我需要使用哪种格式?Date是否适合此字段类型? 通常,是否有一种方法可以在Jackson将变量映射到Object成员之前对其进行处理?诸如更改格式,计算等。 问题答案

  • 问题内容: 每个人。我收到此错误: 对于这段代码 关于为什么发生这种情况的任何建议,我都会吸用结构化语言,以便您知道:) 问题答案: 使用。

  • 问题内容: 如何从JSON.Net转换日期时间格式,例如: /日期(1154970000000 + 0700)/ 到ISO- ?? 格式2011-12-18T23:34:59Z 最好使用Python或Javascript。 Ive决定使用后者,因为它在JS世界中似乎是使用最广泛,人类可读且自然可排序的。我将按用户存储偏移量。 如果实现又有点问题,是否有人可以告诉我两种格式的正确名称,我可能会更不了

  • 问题内容: 我正在实现一个 Facebook 应用程序,并使用 AJAX / JSON 。 但是,返回的 JSON 结构具有此格式。 我正在调用控制器动作。 如何将它们转换为正常的日期格式? 使用 fbjs 从服务器端或客户端进行操作更 容易 吗? fbjs 有很多错误。 因此,我希望使用using()中的解决方案。就像在发送结构之前转换数据。 问题答案: 我将自己的自定义格式添加到返回的json