java 简单日期格式

新手上路,请多包涵

在 Java 中,如何解析包含不代表模式的字母的日期字符串?

“2007-11-02T14:46:03+01:00”

字符串日期 = "2007-11-02T14:46:03+01:00";
字符串格式 = "yyyy-MM-ddTHH:mm:ssz";
新的 SimpleDateFormat(格式).parse(日期);

线程“main”中的异常 java.lang.IllegalArgumentException:非法模式字符“T”
    在 java.text.SimpleDateFormat.compile(SimpleDateFormat.java:769)
    在 java.text.SimpleDateFormat.initialize(SimpleDateFormat.java:576)
    在 java.text.SimpleDateFormat.(SimpleDateFormat.java:501)
    在 java.text.SimpleDateFormat.(SimpleDateFormat.java:476)

原文由 user775187 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 361
2 个回答

您尝试解析的时间似乎是 ISO 8601 格式SimpleDateFormat 遗憾的是不支持与 ISO 8601 相同的所有时区说明符。如果您希望能够正确处理 ISO 中指定的所有形式,最好的办法是使用 Joda time

这个例子直接来自 用户指南

 DateTime dt = new DateTime("2004-12-13T21:39:45.618-08:00");

原文由 Brad Mace 发布,翻译遵循 CC BY-SA 3.0 许可协议

你可以试试

String format = "yyyy-MM-dd'T'HH:mm:ssz";

参考资料:来自 Javadoc

可以使用单引号 (‘) 引用文本以避免解释。

原文由 Bala R 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题