首页 > 解决方案 > 为什么日期无法解析

问题描述

我正在尝试解析一个新的 Date 对象,但我一直遇到以下错误。

W/System.err: java.text.ParseException: Unparseable date: "Thu May 16 09:28:39 GMT+01:00 2019"

我为 dateFormat 尝试了各种不同的模式,但似乎没有任何效果。

这就是错误所在。

c.setTime(dateFormat.parse(oldDate));

代码

  public static String addDay(int numberOfDays) {

    String oldDate = String.valueOf(new Date());

    SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy'T'HH:mm:ss", Locale.ENGLISH);
    Calendar c = Calendar.getInstance();

    try {
     c.setTime(dateFormat.parse(oldDate));
    } catch (ParseException e) {
        e.printStackTrace();
    }

    c.add(Calendar.DAY_OF_YEAR,numberOfDays);
    dateFormat=new SimpleDateFormat("dd-MM-yyyy'T'HH:mm:ss",  Locale.ENGLISH);
    Date newDate=new Date(c.getTimeInMillis());
    String resultDate=dateFormat.format(newDate);
    return resultDate;
}

标签: javaandroid

解决方案


试试这个功能

在您的问题中,您正在转换Datestring

然后在你再次解析StringDate

那是很长的路要走。可以直接设置为 c.setTime(oldDate);

  public static String addDay(int numberOfDays) {
    Date oldDate = new Date();
    SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy'T'HH:mm:ss", Locale.ENGLISH);
    Calendar c = Calendar.getInstance();
    c.setTime(oldDate);
    c.add(Calendar.DAY_OF_YEAR,numberOfDays);
    dateFormat=new SimpleDateFormat("dd-MM-yyyy'T'HH:mm:ss",  Locale.ENGLISH);
    Date newDate=new Date(c.getTimeInMillis());
    String resultDate=dateFormat.format(newDate);
    return resultDate;
  }

推荐阅读