我希望将时间设置为日历并获取时间戳。我使用这段代码:
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)
为什么日历会给我错误的年份和月份?
答案 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
在您发布的图片中可能断点设置不正确...