java - 为什么这个 SimpleDateFormat 不能解析这个日期字符串?

标签 java parsing date simpledateformat

简单日期格式:

SimpleDateFormat pdf = new SimpleDateFormat("MM dd yyyy hh:mm:ss:SSSaa");

pdf.parse("Mar 30 2010 5:27:40:140PM");抛出的异常:

java.text.ParseException: Unparseable date: "Mar 30 2010 5:27:40:140PM"

有什么想法吗?


编辑:感谢您的快速回答。你们都是对的,我只是错过了 SimpleDateFormat 文档中的一个关键句子 - 我应该收工了。

最佳答案

首先,三个字符的月份将由 MMM 表示。其次,一位两位数的小时将由 h 表示。第三,Mar 好像是英文的,你需要提供一个Locale.ENGLISH,否则它在不同默认语言环境的机器上不能正常工作。

以下作品:

SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy h:mm:ss:SSSa", Locale.ENGLISH);
System.out.println(sdf.parse("Mar 30 2010 5:27:40:140PM"));

结果(我在没有 DST 的 GMT-4):

Tue Mar 30 17:27:40 BOT 2010

另见 java.text.SimpleDateFormat javadoc .

为什么你叫它 pdf 我不明白,所以我把它重命名为 sdf ;)

关于java - 为什么这个 SimpleDateFormat 不能解析这个日期字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2603638/

相关文章:

java - Spring JPA 查询示例匹配一个空字段但忽略其他字段

Java 8 如何使用 lambda 表达式简化 for 循环

java - 如何设置用Java代码创建的文件的创建日期?

vba - 格式化函数错误

sql - SQL 新手 - 无法获取季度日期输出

Java JAXB XJC代码生成表单XSD模式问题

Java/Selenium 按 ID 查找元素 - Selenium 是否循环注释?

parsing - Clojure-解析字符串至今

等效于 pymongo 语句的 Python 字典

ios - 如何在 GitHub for iOS (SWIFT) 项目中隐藏 API key ?