回答
使用Time类并分析字符串。然后使用Time toMillis()函数并实例化一个Date。
http://developer.android.com/reference/android/text/format/Time.html#parse3339(java.lang.String)
但是我需要编码为2006-06-21T15:57:24.000Z – user878588
见的SimpleDateFormat,http://developer.android.com/reference/java/text/SimpleDateFormat.html
该类将字符串转换为日期,并且反之亦然,使用给定的图案。
使用正确的模式创建SimpleDateFormat后,可以使用它将字符串转换为Date,根据需要使用日期,并最终使用相同的SimpleDateFormat实例将Date转换回String。
编辑:澄清时区
在它不是阉给定的字符串指定的问题是一个“纯粹”的ISO 8601日期,而在这种情况下,你是否需要或不支持多个时区,如果那个时区将仅表示为数字(如RFC 822中的+0200),带冒号的数字(ISO 8601允许的+02:00)或名称(EST等)。
如果字符串是纯ISO 8601字符串,那么SimpleDateFormat在解码时区时会遇到一些问题。但是,如果它是“始终Z”(意味着时区数据没有意义,并且您可以放心地忽略它),或者使用不带冒号的数字(如+0200等)或使用时区名称,则SimpleDateFormat可以正确处理它。
这个下面简单的代码:
private Date parseDate(String date) {
SimpleDateFormat curFormater = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss.S'Z'");
Date dateObj = new Date();
try {
dateObj = curFormater.parse(date);
} catch (ParseException e) {
e.printStackTrace();
}
return dateObj;
}
它产生如下结果:Wed Jun 21 15:57:24 GMT + 00:00 2006但是我需要2006-06-21T15:57:24.000Z – user878588
它也产生相同的输出Mon Oct 07 04:50:00 PDT 1996 – user878588
ISO 8601
输入字符串中恰好是标准ISO 8601格式。最后的Z
是Zulu
的缩写,意思是UTC。
的java.time类解析和生成表示日期时间值字符串时使用ISO 8601种格式默认。
Instant
类代表UTC中的时间轴上的一个时刻,分辨率为nanoseconds(最多九(9)位小数)。
Instant instant = Instant.parse("2006-06-21T15:57:24.000Z");
要生成标准的ISO 8601格式的字符串,调用toString
。
String output = instant.toString();
2006-06-21T15:57:24Z
字符串=日期 - 时间
不要混为一谈日期时间对象与代表值的String。 date-time对象可以解析一个String,并且可以生成一个String,但不是String。换句话说,一个字符串可以被输入和/或输出,但不是日期 - 时间对象本身。
因此,您的问题,“如何将此字符串转换为Date对象而不更改此格式”是没有意义的。
要以ISO 8601以外的格式生成字符串,请将Instant
转换为OffsetDateTime
或ZonedDateTime
对象,并使用DateTimeFormatter
类。搜索堆栈溢出DateTimeFormatter
查看更多讨论和许多示例。
转换
应该避免老java.util.Date
类只要有可能。但是,如果您必须与尚未更新为java.time类型的旧代码交互,则可以通过添加到旧日期时间类的新方法将其转换为java.time。
java.util.Date utilDate = java.util.Date.from(instant);
...并会向另一个方向......
Instant instant = utilDate.toInstant();
- 1. 将字符串日期转换为日期对象
- 2. 将日期字符串转换为日期时间对象
- 3. 将Android的日期字符串转换为日期对象
- 4. 将日期字符串转换为日期对象
- 5. 如何将解析日期对象转换为字符串?
- 6. 如何将字符串与日期转换为Json对象?
- 7. 如何将日期字符串转换为不带时区的日期对象
- 8. 如何将阿拉伯字符串日期转换为java 8日期对象?
- 9. 转换伪日期字符串转换成JavaScript日期对象
- 10. 将字符串转换为日期并将日期转换回字符串
- 11. 如何将日期时间字符串转换回datetime对象?
- 12. 从日期时间字符串转换为JavaScript日期对象
- 13. Swift Json日期字符串转换为日期对象
- 14. 如何日期时间字符串转换为DateTime对象
- 15. 将字符串转换为日期对象
- 16. 将字符串转换为日期时间对象
- 17. 将日期格式化的字符串转换为DateTime对象?
- 18. 的Javascript:全月将字符串转换为日期对象
- 19. 将自定义字符串格式转换为日期对象
- 20. 如何将日期对象从时间戳转换为日期而不转换为json中的字符串
- 21. 如何将字符串转换为日期和日期字符串?
- 22. 将字符串转换为json与字符串上的日期对象
- 23. 将字符串转换为日期
- 24. 将字符串转换为日期php
- 25. 将字符串转换为日期
- 26. 将字符串转换为IST日期
- 27. 将日期转换为字符串
- 28. Swift将字符串转换为日期
- 29. 将日期转换为字符串
- 30. 将日期转换为字符串SQL
一个'Date'不** **有一种格式。如果你想以某种方式格式化,可以使用'DateFormat'对象。顺便说一句,这也是*解析**将'String'解析为'Date'对象的方法。 –
[SimpleDateFormat](http://download.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html)是您在Java中需要的。不确定关于Android。 – asgs
如果不更改格式,则无法做到这一点。也许你只是简单地打印一个'java.util.Date'对象,只会导致显示'Date#toString()'? (它确实具有不同的固定格式)。然后,您应该先将“Date”转换为“String”,以便将其以所需的格式显示给人类。 – BalusC