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

无法将日期字符串解析为Date

钱欣然
2023-03-14
问题内容

我想将日期字符串解析为日期。我在寻找其他问题,但没有找到答案。

String mail_delivered = "31.10.2013 17:57:58 CET";

try {
    DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z", Locale.GERMAN);
    Date result =  df.parse(mail_delivered);  
    System.out.println(result);
} catch (ParseException pe) {
    pe.printStackTrace();
}

错误消息是java.text.ParseException:Unparseable date: "[31.10.2013 17:57:58 CET]"而且我不知道怎么了。

你能帮我吗。提前致谢。

编辑:好的。我将其翻译成英文,但是我仍然遇到同样的问题。我不想更改输入,因为它来自邮件数据库。还有其他想法吗?

String mail_delivered = "31.10.2013 17:57:58 CET";

try {
    DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss z", Locale.ENGLISH);
    Date result =  df.parse(mail_delivered);  
    System.out.println(result);
} catch (ParseException pe) {
    pe.printStackTrace();
}

我发现了问题。我是瞎子 来自数据库的St是[31.10.2013 17:57:58 CET],不是31.10.2013 17:57:58 CET

谢谢。


问题答案:

在德语中,“欧洲中部时间”是“MitteleuropäischeZeit”,因此,如果您要使用Locale.GERMAN,请更改CETMEZ,它会起作用。

String mail_delivered = "31.10.2013 17:57:58 MEZ";

有关给定语言环境的所有合法时区字符串的列表,请使用以下命令:

DateFormatSymbols.getInstance(Locale.GERMAN).getZoneStrings()


 类似资料:
  • 首先,我的问题是通过Spring MongoDb的MongoRepository在MongoDB中搜索集合。 我的对象: 我可以在Mongo query中随心所欲地执行以下操作: (您可以用新日期替换ISODate) 但是要在Spring做这件事,我想这样做: 但它失败了,我搜索了两个主题:这里和那里 最终 但是,我又一次遇到了解析的问题: 2019-03-22 10:09:48.261ERROR

  • 当我将格式的字符串对象转换为时,它会给我 我试着这样做:

  • 我试图用GMT解析一个表示日期的字符串,但它在我的PC(太平洋)上的时区中打印出来。当我运行下面的时,我得到下面的输出。关于如何让解析器解析并返回GMT日期有什么想法吗?如果您看下面,我正在使用format.settimezone(timezone.gettimezone(“GMT”))设置时区;但它并没有产生预期的结果。 以下代码的输出: 10月29日星期一05:57:00 PDT 2012

  • 问题内容: 当我将格式的字符串对象转换为它给我时 我正在尝试这样做: 问题答案: 这里有几个潜在的问题: 您未指定格式 您未指定语言环境 您未指定时区 您正在尝试将返回值(将是引用)转换为-,否则将失败 您想要类似:

  • 问题内容: 如何将下面的日期字符串解析为一个Date对象? 引发异常… 问题答案: 模式是错误的。您有3个字母的天的缩写,因此必须为。您有3个字母的月份缩写,因此必须为。由于这些日和月的缩写对语言环境敏感,因此您也希望将语言环境明确指定为英语,否则它将使用平台默认语言环境,而语言环境本身可能不是英语。 这在这里打印 根据我的时区是正确的。 如果您不想使用代替,我也会重新考虑。阅读javadoc以获

  • 问题内容: SimpleDateFormat: 抛出的异常: 有任何想法吗? 编辑: 感谢您的快速解答。你们都是正确的,我只是错过了SimpleDateFormat文档中的一个关键句子-我可能应该把它称为一天。 问题答案: 从SimpleDateFormat javadocs : 月:如果图案字母的数目为3或更多,则将月份解释为文本;否则,将其解释为数字。 尝试使用“ MMM dd yyyy”之类