Java日历:以时间戳设置时间

时间:2015-05-20 12:39:30

标签: java android calendar

我希望将时间设置为日历并获取时间戳。我使用这段代码:

    long remindDate = lastExecutionDate + (Integer.parseInt(carAction.getFrequencyDate()) * Utils.getTimestampForPeriodByType(carAction.getFrequencyDateType()));
    final Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(remindDate);
    calendar.set(Calendar.HOUR_OF_DAY, 8);
    calendar.set(Calendar.MINUTE, 55);

    reminder.setRemindDate(calendar.getTimeInMillis());

remindDate = 1432556775(2015年5月25日星期一12:26:15 GMT)

calendar.getTimeInMillis() = 1403756775(星期四,2014年6月26日04:26:15 GMT)

为什么日历会给我错误的年份和月份?

1 个答案:

答案 0 :(得分:1)

您的代码看起来恰到好处,日历变量中没有错误。可以使用timeInMillis设置日历,然后只使用几个字段(如果这是您的目标)更新日历:

    long remindDate = 1432212473;
    final Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(remindDate);
    System.out.println(calendar.getTime());
    System.out.println(calendar.getTimeInMillis());

    calendar.set(Calendar.HOUR_OF_DAY, 8);
    calendar.set(Calendar.MINUTE, 55);
    System.out.println(calendar.getTime());
    System.out.println(calendar.getTimeInMillis());

输出 Sat Jan 17 15:50:12 EET 1970 1432212473 Sat Jan 17 08:55:12 EET 1970 1407312473

在您发布的图片中可能断点设置不正确...