作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我要格式化的字符串如下所示:String datetime = "9/1/10 11:34:35 AM"
SimpleDateFormat 的以下模式有效:
SimpleDateFormat sdf = SimpleDateFormat("M/d/yy h:mm:ss");
Date d = sdf.parse(datetime);
System.out.println(d);
Output> [Wed Sep 01 11:34:35 CEST 2010]
但是,我还需要解析 AM/PM 标记,当我将其添加到模式时,我会收到异常。
无效的模式:
SimpleDateFormat sdf = SimpleDateFormat("M/d/yy h:mm:ss a");
我也尝试过同样的异常(exception):
SimpleDateFormat sdf = SimpleDateFormat("M/d/yy h:mm:ss aa");
异常(exception):
java.text.ParseException: Unparseable date: "9/1/10 11:34:35 AM"
我已经在 http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html#text 查看了 API但似乎找不到我哪里做错了。
有什么建议吗?
最佳答案
一种可能是您的默认 Locale
具有不同的 AM/PM 符号。在构建日期格式时,你应该始终提供一个 Locale
,除非你真的想使用系统的默认 Locale
,例如:
SimpleDateFormat sdf = new SimpleDateFormat("M/d/yy h:mm:ss a", Locale.US)
关于java - 无法使用 AM/PM 标记解析日期时间字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3618676/
我是一名优秀的程序员,十分优秀!