Java SimpleDateFormat 无法将给定对象格式化为日期

问题描述 投票:0回答:2

我正在尝试使用日期格式将字符串转换为日期并使用以下代码,但它显示错误。

      public static Date ConvertStringtodate(String Date) throws ParseException {
            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            Date Teststart = dateFormat.parse(Date);
            return Teststart;
        }

        public static void main(String[]agrs) throws ParseException {
            System.out.println(ConvertStringtodate("2022.02.10 17:54:55"));
        }

这是错误

线程“main”中的异常 java.lang.IllegalArgumentException:不能 将给定对象格式化为日期 java.text.DateFormat.format(DateFormat.java:310) 在 java.text.Format.format(Format.java:157)

java simpledateformat
2个回答
3
投票

在主要方法中,您将发送日期为

2022.02.10 17:54:55
。但是,您将模式的格式写为
yyyy-MM-dd hh:mm:ss
。将
SimpleDateFormat
构造函数中的模式更改为
yyyy.MM.dd HH:mm:ss


0
投票

我的问题是日期输入中的斜杠“/”。由于某种原因。输入字符串是“01/01/1991”而不是“01-01-1991”。所以我只是用破折号替换了斜线,一切都很好。

private Date convertStringToDate(String payload) throws ParseException {
        payload = payload.replace("/", "-");
        SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy", Locale.ENGLISH);
        java.util.Date utilDate = formatter.parse(payload);
        return new Date(utilDate.getTime());
    }
© www.soinside.com 2019 - 2024. All rights reserved.