Calendar getTimeInMillis()返回错误的日期

时间:2016-01-30 19:01:42

标签: android date calendar

我遇到日历getTimeInMillis()函数的问题,该函数返回无效日期 首先,我使用简单的日期格式化程序格式化我的字符串日期" 05/05 / 2016"

SimpleDateFormat mDateFormatter = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);

然后我将结果解析日期放入日历对象

Calendar mCalendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
mCalendar.setTime(mDateFormatter.parse("05/05/2016"));

并且函数getTime()将于5月05日00:00:00 GMT + 03:00返回 并且函数getTimeInMillis()返回1462395600000等于 2016年5月4日星期三,两个函数的输出之间有一天的差异,那么问题是什么?

1 个答案:

答案 0 :(得分:0)

我运行了这段代码:

    SimpleDateFormat mDateFormatter = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);

    Calendar mCalendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
    mCalendar.setTime(mDateFormatter.parse("05/05/2016"));

    System.out.println("getTime: " + mCalendar.getTime());
    System.out.println("millis : " + mCalendar.getTimeInMillis());

    Date date = new Date(mCalendar.getTimeInMillis());
    System.out.println("Date from millis: " + date);

得到了这个输出:

getTime: Thu May 05 00:00:00 GMT 2016
millis : 1462406400000
Date from millis: Thu May 05 00:00:00 GMT 2016

所以我没有看到你描述的问题。我用http://ideone.com/我错过了什么?您是否对CalendargetTime()之间的getTimeInMillis()做了什么?