日期解析在android中给出了错误的日期

时间:2017-02-21 06:00:01

标签: java android date

在android中,我在解析时得到错误的日期。我提供22 Feb (Wednesday)。为什么它给我错误的工作日(星期日)?请查看下面的屏幕截图,查看包含值的完整代码。

SimpleDateFormat format = new SimpleDateFormat("dd MMM (EEEE)");
try {
    Date date = format.parse(strDate);
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    c.add(Calendar.DATE, 2);
    String output = format.format(c.getTime());
    tvDeliveryDate.setText(output);
    tvDeliveryTime.setText(time);
    deliveryDateTime = output + "," + time;
    db.putString("deliver_date",output);
    db.putString("deliver_time",time);
    db.putString("deliver_date_time",output + ", " + time);
} catch (ParseException e) {
    e.printStackTrace();
}

Screenshot Image

1 个答案:

答案 0 :(得分:5)

您的日期格式没有年份组件,因此假定为1970年。 1970年,2月22日是星期天。

来自SimpleDateFormat.parse()文档:

  

此解析操作使用日历生成Date。在解析之前清除所有日历的日期时间字段,并且日历时间字段的日历默认值用于任何缺少的日期时间信息。例如,如果解析操作没有给出年份值,则解析的Date的年份值为1970,GregorianCalendar