【问题标题】:converting String to date in java (complex string )在java中将字符串转换为日期(复杂字符串)
【发布时间】:2012-02-17 16:54:24
【问题描述】:

我正在尝试将字符串格式的日期转换为日期数据类型。

我正在使用SimpleDateFormatter

但我的字符串日期格式为2012-12-24T16:45:00.000+05:30

如何使用简单的 sdf 进行转换?

这在 Java 中可行吗?

因为我的代码是用 Java 编写的。

【问题讨论】:

标签: java string date


【解决方案1】:

使用SimpleDateFormat(或joda-timeDateTimeFormatter):

DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
Date date = df.parse(str);

时区部分不适用于 Java6。在 Java7 中是 XXX,在 joda-time 中是 ZZ

【讨论】:

  • 不,您无法使用 SimpleDateFormat 解析时区 (+05:30)。
  • 你是对的。我不知道Java 7中添加了X格式字符。
【解决方案2】:

你一定要看看 Joda-Time:

http://joda-time.sourceforge.net/

【讨论】:

  • Joda 时间真的很规则,因为你的格式是 iso 我相信你可以使用 DateTime dt = new DateTime("2012-12-24T16:45:00.000+05:30");(从我的脑海中,我没有检查,只是记住了)。
【解决方案3】:

你从哪里得到这个字符串? Xml?然后使用以下方法解析String:

http://docs.oracle.com/javase/7/docs/api/javax/xml/datatype/DatatypeFactory.html#newXMLGregorianCalendar%28java.lang.String%29

在处理 XML 时也可以考虑使用 JAXB。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 2017-11-20
    • 1970-01-01
    • 2023-03-30
    • 2016-09-07
    • 1970-01-01
    相关资源
    最近更新 更多