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

从字符串到日期的解析引发不可解析的日期错误

郎宣
2023-03-14
问题内容

我有一个名为的变量data,它具有以下格式的今天的日期:Thu May 24 13:14:41 BRT 2018。然后,将其格式化为MySQL的Date类型格式,即yyyy-MM-dd。这段代码可以做到:

String dataFormatada = new SimpleDateFormat("yyyy-MM-dd").format(data);

我要做的是将其恢复为Date类型。我尝试了一些方法,但是它们没有用。主要解决方案是按照其他的问题中所述进行操作](http://codingdict.com/questions/2936),并通过一个小小的mod达到了我想要的功能:

String target = "Thu Sep 28 20:29:30 JST 2000";
DateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
Date result =  df.parse(target);  
System.out.println(result);

但是它不起作用,因为尝试解析时出现此错误:

java.text.ParseException: Unparseable date: "Thu Sep 28 20:29:30 JST 2000"

因此,我不能只重新格式化data变量,也不能dataFormatada恢复到日期格式。如何将dataFormatada格式化为yyyy-MM-
dd的Date类型转换为Date?


问题答案:

您的目标字符串格式为EEE MMM dd HH:mm:ss zzz yyyy格式。因此,您需要使用EEE MMM dd HH:mm:ss zzz yyyy而不是用作模式yyyy-MM-dd

    String target = "Thu Sep 28 20:29:30 JST 2000";
    DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
    Date result =  df.parse(target);  
    System.out.println(result);

如果要转换Date对象(即result),yyyy-MM-dd请使用以下代码。

    DateFormat dfDateToStr = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
    String formattedDate  = dfDateToStr.format(result);
    System.out.println("Formatted Date String : "+formattedDate);


 类似资料:
  • 问题内容: 我正在尝试将以下文本转换为日期,但无法使其正确解析。 我究竟做错了什么? 问题答案: 尝试使用与输入匹配的日期格式。 编辑:固定日期格式字符串。 注意:HH是一天中的小时,不是am / pm小时。

  • 问题内容: 我在这里有点迷路,我认为我一切都很好,但仍然无法正常工作(PaseException 帮助高度赞赏! 问题答案: 对我来说很好。 也许你可以尝试

  • 问题内容: 在Android应用程序中,我试图从字符串中解析日期,以发现两次之间的差异。 因此,我必须进行解析,以便获得格式,因此 但是我到了 所以我在做什么错了?如何在这里解析? 问题答案: 您需要将第二个MM(月)更改为mm(分钟):

  • 问题内容: 我试图解析一个日期字符串,它是FTP服务器上文件的修改日期。以下是代码。 我在日志中得到这个 谁能帮我这个忙吗? 问题答案: String#substring(int index) 方法的javadoc 说: 子字符串以指定索引处的字符开头,并扩展到该字符串的末尾。 这就是您遇到的问题:您没有正确使用该方法,因为调用该方法时,您会收到另一个,该字符包含一个空格作为第一个字符,这就是解析

  • 这就是问题所在: 我有一些带有旅行信息的. csv文件,日期显示为字符串(每一行代表一次旅行): “1-5月和10-12月的所有星期一。6-9月的所有日子” 我必须将字符串解析为日期,并为每次旅行将其保存到一个数组中。 问题是我不知道怎么做。甚至我的大学老师也告诉我,他们不知道如何做到这一点:S。我无法使用http://docs.oracle.com/javase/6/docs/api/java/

  • 问题内容: 我要解析的字符串: 周日2013年11月10日10:00:00 我的代码: 编译器错误输出: java.text.ParseException:无法解析的日期:java.text.DateFormat.parse(Unknown Source)的“ Sun Nov 10 10:00:00 CET 2013”​​ … 问题答案: 可能您缺少正确的语言环境。在您的示例中尝试以下操作: