为什么日期无法解析

我正在尝试解析一个新的 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;

}


一只斗牛犬
浏览 117回答 3
3回答

慕田峪9158850

试试这个功能在您的问题中,您正在转换Date为string然后在您再次解析String为Date那是很长的路要走。你可以直接设置为 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;  }

临摹微笑

模式应该是这样的:SimpleDateFormat sdf = new SimpleDateFormat("EE MMM dd HH:mm:ss z yyyy",                                            Locale.ENGLISH);然后打印你需要第二个 SimpleDateFormat:Date parsedDate = sdf.parse(date);SimpleDateFormat print = new SimpleDateFormat("MMM d, yyyy HH:mm:ss");System.out.println(print.format(parsedDate));

繁花不似锦

你的模式是错误的。你应该使用EEE MMM dd HH:mm:ss z yyyy
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java