![]() |
1
23
原始答案我猜这里的“XML日期格式”是指类似“2010-11-04T19:14Z”的内容。实际上是 ISO 8601 格式。 如其他人所建议的,您可以使用SimpleDateFormat、FastDateFormat或使用 Joda Time 我相信它是专门为 this purpose . 作为 在评论中指出,这个答案可以通过例子加以改进。
不是的本地日期(时间)举个例子:
一开始我们使用的可能是本地的(用户日期和时间)。但是,如果你敢问,你会得到不同的结果:
实际上,这是ISO时间。我认为应该是“UTC”,但这并没有本地时区的概念。所以我们应该认为它是普遍的。
指定救援时间
这里唯一的问题是,您实际上需要使用时区指定。尝试分析原始日期时间(即“2016-03-23T18:21”)将导致
我建议现在使用这些课程。然而,如果你的工作描述包括考古学(这意味着你没有足够的运气与超过2岁的Java 8一起工作…),你可能需要使用其他东西。 SimpleDateFormat的乐趣
我不是https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html的忠实粉丝,但有时候你别无选择。问题是,它不是线程安全的,它将抛出一个检查
快速日期格式
乔达蒂姆随着乔达时代的到来,你可能会认为以下是可行的:
不幸的是,不管你在最后一个位置(Z,+03:00,…)放什么,结果都是一样的。很明显,它不起作用。
现在没事了。请注意,与其他答案不同,我使用
|
![]() |
2
20
如前所述,使用SimpleDateFormat。
我猜你要找的格式/模式是
|
![]() |
3
9
使用 Joda Time
线程安全,不可变,简单。 |
|
4
8
完美的方法,使用XMLGregorianCalendar:
|
![]() |
5
7
|
![]() |
6
4
我建议使用java内置类
javax.xml.bind.DatatypeConverter
. 它可以处理大多数xml简单类型之间的转换。约会有点麻烦
到xml:
编辑 DatatypeConverter类在Java 9及更高版本中不再公开,因为它属于javax.xml.bind包。见 this question 卢瓦吉欧 在这种情况下,使用xmlgerigoriancalendar要好得多。 |
![]() |
7
3
|
|
8
2
为了符合ISO8601,时区的格式必须是+HH:MM或-HH:MM 对于Simpledateformat,您必须使用XXX而不是Z(请参见NovelGuy答案)
|
![]() |
9
1
here . |
![]() |
Dima Malko · 如何在指定符号前添加符号? 2 年前 |
![]() |
shekharsabale · 从列表元素捕获子字符串 2 年前 |
![]() |
Manny · 如何比较Perl中的字符串? 2 年前 |
![]() |
Manan Girdhar · 拆分字符串并仅在java中使用第二部分 2 年前 |
![]() |
AnxiousLuna · Python使用len()获取数组索引数 2 年前 |
![]() |
antonoyaro8 · 数据帧中每列上的Grepl 2 年前 |