当前位置: 首页 > 面试题库 >

无法使用AM / PM标记解析DateTime字符串

谷光誉
2023-03-14
问题内容

我要格式化的字符串如下所示: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");

我也尝试过与此相同的例外:

SimpleDateFormat sdf = SimpleDateFormat("M/d/yy h:mm:ss aa");

例外:

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 8 DateTime API解析日期时间字符串。 要解析的字符串包含日期,月份,年份和AM / PM标记,例如。我使用以下模式:并且我希望将解析的LocalDateTime时间部分设置为AM / PM标记或取决于AM / PM标记。 使用以前的API,解析可以使用此模式按预期进行。 但是当我使用Java 8 DateTime API并运行以下代码时: 我得到以下

  • 我是学习android Java的初学者。我从Youtube上学习java android教程,我完全遵循视频中的编码,但在android Studio上我的编码显示“无法解析符号‘标签’”。我可以知道是什么问题吗?并希望得到在座各位大师的讲解。

  • 问题内容: 我正在尝试使用Java 8 将格式化的字符串解析为对象。但是,我在解析某些输入字符串时遇到了一些问题。当我的输入字符串具有“ AM”时,它将正确解析,但是当我的字符串具有“ PM”时,它将引发异常。这是一个简单的例子: 输出: 因此可以正确解析,但是会在消息中抛出DateTimeParseException: 但是,这就是我遇到的问题。.我不太确定该错误的确切含义,但这绝对与输入字符串

  • 但这就是我卡住的地方..我不确定这个错误到底是什么意思,但它肯定与输入字符串的AM/PM部分有关。我也尝试搜索类似的错误,但我没有找到任何东西。我有一种感觉,我可能在定义格式化程序模式时犯了一个简单的错误,但我卡住了。任何帮助都将不胜感激!

  • 问题内容: 我想使用joda库(在scala中,但应该与java相同)解析DateTime。 来源看起来像 在Java中,这看起来像 不幸的是,这不起作用,但会引发异常: 为什么不起作用?当然,我可以忽略“ CEST”部分,而只分析其余部分,但是有时在输入中“ CEST”可以用“ CET”代替,所以我不想忽略它。 问题答案: 问题是因为区域名称短而并非唯一。请参阅DateTimeFormatter

  • 我已经研究过关于同一错误的其他问题,但我很难将它们应用到我的情况中。 这是我得到的错误: 致命错误:未捕获异常“exception”,消息为“DateTime::u-construct()[DateTime.-construct]:无法分析位置10(1)处的时间字符串(2013-07-22164:50:00):在/Applications/XAMPP/xamppfiles/htdocs/Festi