本问题已经有最佳答案,请猛点这里访问。

我在任何地方都找不到这个。我从返回标准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;

}

}

呸!

在下面的评论中,您提到了您正在为Android实现。你试过安卓SimpleDateFormat的ZZZZZ吗?

日期时间格式实际上是ISO 8601日期时间。JSON没有为日期/时间指定任何特定的格式。如果你有一点谷歌,你会发现很多实现在Java中解析它。

这里有一个

如果您愿意使用除了Java的内置日期/时间/日历类之外的其他东西,我也建议JoDA时间。它们提供(在许多方面)一个ISODateTimeFormat来解析这些类型的字符串。

卓达时推荐+ 1 for the

嗯,兴趣。他们的解决方案是相似的:漂亮的地雷)。这其实不have this,Java是建立在标准的,如果。

卓达as for Android项目时,我想要的是在线和使用as as possible小的外部库。thanks for the提示,虽然。

as with"费利克斯,have a to send a JSON的要求(即"日期:2011年06月29t14 42.289z 00:Java和古恩")。也不要想的太多的图书馆使用。is there any to the卓达图书馆优势似乎如果我要求iso8601dateparser to be that by the Met codelark级联,@?

"我的博客是做任何iso8601dateparser see how the good。与Java 7,你have the letter X时区格式。from that of the休息分开,SimpleDateFormatis not because EN ISO 8601完全就绪,但负面的数字输出将not to its年"棒"是"思想"。one has to format for the year before separately依从ISO 8601日期之前为1年;相似(for the year number,也说明扫描之间的布尔差分SimpleDateFormatISO 8601)。

classstacker @的appreciate Comment(the other谷歌会认为我太)。不管一个人多,这个问题我要和我的评论是在2010年六月(从2011年1月之前,关于Java 7的释放日期)。

请注意,simpledateformat格式模式z用于RFC 822时区,模式x用于ISO 8601(此标准支持单字母时区名称,如z用于zulu)。

因此,new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX")生成一种既可以解析"2013-03-11T01:38:18.309Z"又可以解析"2013-03-11T01:38:18.309+0000"的格式,并将得到相同的结果。

不幸的是,据我所知,您无法使用此格式为zulu版本生成z,这很烦人。

实际上,在JavaScript方面,我在处理这两种格式时遇到了更多的麻烦。

如果您需要支持多个格式,则必须对输入进行模式匹配,并相应地进行分析。

final DateFormat fmt;

if (dateString.endsWith("Z")) {

fmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");

} else {

fmt = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");

}

我猜你正在处理的API中的一个错误引用了Z时区日期模式…

literal is the valid - Z是一+00:00Way of说,即UTC时间。EN stands for"是:所有...also祖鲁祖鲁colloquially to as"时间",在美国军事particularly……"(维基百科)

java json日期_JSON日期到Java日期?相关推荐

  1. java json 构造_json 构造和解析

    目录: (1)引入jar包: (2)json的构造: (3)json的解析: (4)遍历未知key. (1)java对json的处理,可借助org.json.jar. org.json json 20 ...

  2. java json 压缩_Json压缩工具(示例代码)

    一般的json文件拥有很多的空格和注释,虽然读起来比较方便,但是在运行的时候是要占一些内存的. 于是json压缩工具就应运而生了,这个工具是用java做的,原理是: 1:在Eclipse中导出一个可运 ...

  3. java json重命名,eclipse中java变量怎么变成json格式的编码?

    我们想要使用eclipse来进行从java变量到json格式的编码米该怎么实现呢?下面我们就来看看详细的教程. 一.导入jar包 1.我们首先要下载好我们需要的json包,然后我们右击项目,选择&qu ...

  4. Java json拼接字符串_JSONObject与java字符串拼接json的区别

    背景 事情的起因是这样的.最近正在调试Socket.io的Android端接口.自己找到的Socket.io的Android的官方资料只是简单的字符串传递,而后台的接口则是一次性传递多组键值对参数,考 ...

  5. java json发送文件_关于java:REST API设计在同一请求中将JSON数据和文件发送到api...

    我正在现有应用程序之上创建一个RESTAPI.其中一个特性接受JSON数据以及用户上传的文件. 我不确定如何将同一请求中的文件和JSON数据发送到RESTAPI? 我让JSON部件工作,并使用curl ...

  6. java json 长度限制_[原创]Java中字符串、数组、集合及JSONArray的长度属性

    前言:数组没有length()这个方法,有length的属性.String有有length()这个方法. 1.String字符串 String str = "abcdefg"; s ...

  7. java json lib 日期

    2019独角兽企业重金招聘Python工程师标准>>> java json lib 日期 博客分类: java JSONObject jsonPerson = JSONObject. ...

  8. java 月份间隔_java计算两个日期之间相隔的月份(向下取整)

    最近需求里面有个需要计算两个日期之间相隔的月份,写起来还挺繁琐,需要将各种情况都要考虑到,写了一个作为以后自己的工具吧. //获取哪一天 public static int getDay(Date d ...

  9. java语言显示运算时间_JAVA语言之ACM日期计算:输入一个日期,格式如:2010 10 24 ,判断这一天是这一年中的第几天...

    本文主要向大家介绍了JAVA语言之ACM日期计算:输入一个日期,格式如:2010 10 24 ,判断这一天是这一年中的第几天,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. ACM日期 ...

  10. 计算机二级日期格式,09年计算机二级辅导:指定格式的日期字符串转化成java.util.Date类型日期对象...

    09年计算机二级辅导:指定格式的日期字符串转化成java.util.Date类型日期对象 分类:计算机等级| 更新时间:2008-10-16| 来源:教育联展网 将未指定格式的日期字符串转化成java ...

最新文章

  1. 数据中心安全的六条黄金规则
  2. mysql 主机类型_实现在别的电脑上访问主机的mysql
  3. NVIDIA AGX Xavier环境配置
  4. zoj 3209 Dancing links/hust 1017
  5. SAP UI5 /UI5/IF_UI5_REP_PERSISTENCE - why I cannot deploy app to GM6
  6. mysql索引底层图_MySQL索引底层数据结构
  7. Windows系统使用SSH连接远程服务器
  8. Niubility!华为天才少年自制机械臂能给葡萄缝针
  9. 大数据 与 云计算 的关系
  10. html实心向右三角形,css 如何在html页面上输出一个左三角形或右三角形呢?
  11. shell脚本中的 EOF 是什么意思?
  12. meltdown linux 补丁,谈谈CentOS发布内核安全补丁:修复Meltdown和Spectre漏洞
  13. 零刻数据提供多地优质BGP双线接入服务
  14. 一文详解Type C-CC引脚的作用
  15. 2022 google chrome 翻译DNS
  16. iOS 开发者必知的 75 个工具(译文)
  17. OLED屏幕还未普及,移动VR没有想象中爆发那么快
  18. DTI预处理及概率性纤维束追踪
  19. C语言进阶——函数指针
  20. 模块化通信原理实验箱QY-JXSY32

热门文章

  1. 利用streamline函数绘制电力线
  2. i710700和i510400f哪个好
  3. PHP应用加速工具软件
  4. 2021年化工自动化控制仪表考试试卷及化工自动化控制仪表复审考试
  5. PDF怎么编辑,如何给PDF文件加页码
  6. 嵌入式linux如何学?
  7. 陆金所年营收618亿:平安持股41.6% 市值一年蒸发300亿美元
  8. 苹果无线充电方案与5W无线充电方案对比
  9. 初学者python编辑器选pycharm_PyCharm入门教程——在编辑器中选择文本|python基础教程|python入门|python教程...
  10. 如何在Ubuntu 14.04上安装轻量级的Budgie桌面