java - Java中的日期转换错误

标签 java date-format

我正在尝试将“Mon Jan 14 00:00:00 GMT-12:00 2013”​​类型的日期转换为 java.sql.Date yyyy/MM/dd 类型,我编写了以下代码。在尝试执行下面的代码时,我收到“无法解析的日期”错误。请帮助我解决以下问题。

        DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
     try{
               java.sql.Date xdate=new java.sql.Date(df.parse("Mon Jan 14 00:00:00 GMT-12:00 2013").getTime());
System.out.println(xdate.toString());

            }catch(Exception x)
            {
                System.out.println(x.getMessage());
            }

最佳答案

与其他答案一样,您使用了错误的模式来解析您获得的日期字符串。

事实上,您需要该模式,但要将 Date 对象转换为所需的模式。但首先您需要获取给定日期字符串的 Date 对象。为此,您需要构建与您拥有的字符串完全匹配的模式。

日期格式有两个方面:-

  • 解析 - 日期字符串到日期对象
  • 格式化 - 将日期对象格式化为日期字符串

所以,你首先需要使用DateFormat#parse() ,然后 DateFormat#format() ,具有不同的图案。

所以,这是您需要的代码:-

String fromDate = "Mon Jan 14 00:00:00 GMT-12:00 2013";
Date date = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy").parse(fromDate);

java.sql.Date toDate = new java.sql.Date(date.getTime());

System.out.println(new SimpleDateFormat("yyyy/MM/dd").format(toDate));

关于java - Java中的日期转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14364863/

相关文章:

java - 如何通过Java访问Dynamics CRM

Java for循环线程锁

java - 为什么String类有拷贝构造函数?

javascript - 保加利亚语正则表达式(有效)日期格式 d.M.yyyy 'г.'

ios - 当我在 DateFormat 上设置 `HH:mm:ss` 时,在极少数情况下我会得到 `22:42:31 AM`。 ` AM` 是意外的。我该如何解决?

java - 使用 java 中的 getDateTimeFormat 从日历获取自定义格式

java - 奇怪的 IText 7 行为 - 错误

java - Spring 中 Java 8 Time API 的日期验证

javascript - 如何在 JavaScript 中将 ISO 8601 日期转换为 '/Date(1525687010053)/' 格式?

java - Hibernate 多对多双向 - 双向 @JsonManagedReference 和 @JsonBackReference