哪个Java日期格式是这个“YYYY-MM-DD 00:00:00 + 00:00”?

问题描述:

我有一些数据提到日期为“2013-06-30 00:00:00 + 00:00”。我检查了不同的日期格式,但无法找到这一个。有人可以帮忙吗?哪个Java日期格式是这个“YYYY-MM-DD 00:00:00 + 00:00”?

+0

你能否详细说明这个日期'2013-06-30 00:00:00 + 00:00'?我认为你的数据在excel表单中? – 2014-12-05 09:49:55

+0

嗯,它看起来不像ISO 8601 – 2014-12-05 09:51:11

+0

嗨...我在CSV文件中获得了这些数据。 – Sameervb 2014-12-05 10:02:10

这是一个ISO 8601格式化的日期的日期和时间之间省略T(见:In an ISO 8601 date, is the T character mandatory?

+0

嗨...是的,它看起来非常类似于ISO 8601格式,但我拥有的数据没有T.因此,这个问题:) – Sameervb 2014-12-05 10:01:25

+0

通过您的链接提到,我们可以跳过T(双方达成一致另外还有一个例子在下面提到:1985-04-12T10:15:30 + 04:00所以如果我们跳过T,我粘贴的格式是ISO-8601? – Sameervb 2014-12-05 10:17:54

我想应当YYYY-MM-DD 00:00:00+000 0而不是YYYY-MM-DD 00:00:00+00:00。 这种格式是yyyy-MM-dd HH:mm:ss.SSSZ

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSZ"); 
Date date = new Date(); 
System.out.println(dateFormat.format(date)); 

其他不同的日期格式

yyyy-MM-dd 1969-12-31 
yyyy-MM-dd 1970-01-01 
yyyy-MM-dd HH:mm 1969-12-31 16:00 
yyyy-MM-dd HH:mm 1970-01-01 00:00 
yyyy-MM-dd HH:mmZ 1969-12-31 16:00-0800 
yyyy-MM-dd HH:mmZ 1970-01-01 00:00+0000 
yyyy-MM-dd HH:mm:ss.SSSZ 1969-12-31 16:00:00.000-0800 
yyyy-MM-dd HH:mm:ss.SSSZ 1970-01-01 00:00:00.000+0000 
yyyy-MM-dd'T'HH:mm:ss.SSSZ 1969-12-31T16:00:00.000-0800 
yyyy-MM-dd'T'HH:mm:ss.SSSZ 1970-01-01T00:00:00.000+0000 

ISO 8601

至于你提到这是“什么格式”问题的可选的变化,技术上这种格式是ISO 8601的可选变体。 standard allowsT被通讯方之间的相互协议替换为SPACE。

使用SPACE可能会使字符串在缺乏适当数字字体的情况下更易读。但严格来说,这个SPACE版本不是标准的,所以在系统之间交换数据或将数据序列化为文本时应该包括T

使用java.time

其他答案是正确的。这是解析的一个简单的选择。

您的输入字符串几乎符合标准ISO 8601格式。将中间的空格替换为T以完全符合要求。

String input = "2013-06-30 00:00:00+00:00".replace(" " , "T"); 

java.time类取代麻烦的旧的遗留日期时间类。这些较新的类在解析/生成字符串时默认支持ISO 8601格式。

OffsetDateTime odt = OffsetDateTime.parse(input); 

关于java.time

java.time框架是建立在Java 8和更高版本。这些类取代了日期时间类legacy,如java.util.Date,Calendar,& SimpleDateFormat

Joda-Time项目现在位于maintenance mode,建议迁移到java.time类。请参阅Oracle Tutorial。并搜索堆栈溢出了很多例子和解释。规格是JSR 310

从何处获取java.time类?

ThreeTen-Extra项目与其他类扩展java.time。这个项目是未来可能增加java.time的一个试验场。您可以在这里找到一些有用的类,如IntervalYearWeekYearQuartermore