我正在尝试解析一些 xml 文件中写入的时间戳。大多数时间时间戳是这样的2009-07-22-07:00但有时我发现它们就像2009-07-22Z or 2009-07-22z。请帮助我如何解释这些 Z 以及如何解析它们。我认为这些 z 或 Z 与时区有关。有什么解决方法可以像典型的时间戳一样解析它们吗?
添加到 fvu 的答案:不幸的是,Java 没有任何内置方法来解析(或格式化 ISO8601 日期和时间格式,更不幸的是,它不可能(轻松)使用解析 ISO8601 日期java.text.SimpleDateFormat
.
众所周知且受欢迎的乔达时间 http://joda-time.sourceforge.net/库确实对 ISO8601 日期和时间有很好的支持。
Edit:从 Java 5 开始,标准 API 中就有一些类可以按照 XML 文档中常用的标准格式来解析和格式化日期和时间。解析日期:
import java.util.Calendar;
import java.util.Date;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
// ...
String dateString = "..."; // wherever you get this from
XMLGregorianCalendar xcal = DatatypeFactory.newInstance().newXMLGregorianCalendar(dateString);
Calendar cal = xcal.toGregorianCalendar();
Date date = cal.getTime();
同样,也有将日期格式化为字符串的方法。
有关详细信息,请参阅这些类的 API 文档。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)