findCalendarStart: time into Calendar: 1260575897
findCalendarStart: set hour : 13
findCalendarStart: after hour : 1249775897
findCalendarStart: after hour string: Thu Jan 15 11:09:35 UTC 1970
findCalendarStart: set minutes : 13
findCalendarStart: after minutes: 1250015897
findCalendarStart: what calendar returns: 1250015897
我在日历中放置了一个日期(通过从今天开始经过一毫秒长的时间来初始化)。日历已正确初始化。在第一个计算中,我将一天中的小时更改为 13。此时,startCalTime.set(Calendar.HOUR_OF_DAY, ((new Integer(m.group(1)).intValue())*2)-1 );
我正在传递正确的一天中的小时值和分钟值,因为我在记录器中看到它们。在我仅更改今天的日期对象中的小时后,可能会导致日历出现如此奇怪的日期?
更多代码:
Calendar startCalTime = Calendar.getInstance(TimeZone.getTimeZone("America/Los_Angeles"));
Date d = new Date(creationTime);
startCalTime.setTime(d);
startCalTime.getTimeInMillis();
..正则表达式..
if(m.find()){
//SET HOUR OF DAY
_logger.warning("set hour 1 : " + new Integer((new Integer(m.group(1)).intValue())-1)); startCalTime.set(Calendar.HOUR_OF_DAY, new Integer(m.group(1)).intValue()-1 );
_logger.warning("after hour 1: " + new Long(startCalTime.getTime().getTime()));
_logger.warning("after hour 1 string: " + startCalTime.getTime().toString());
//SET MINUTE
_logger.warning("set minutes 1 : " + new Integer(m.group(2).toString()));
startCalTime.set(Calendar.MINUTE, new Integer(m.group(2)).intValue());
_logger.warning("after minutes 1: " + new Long(startCalTime.getTime().getTime()));}
谢谢
库洛夫
最佳答案
让我们看看如何初始化日期。我怀疑您传递的不是毫秒,而是自纪元开始以来的秒 - 这(秒,而不是毫秒)是常规 Unix 时间戳的定义方式。 Java 使用毫秒来获得更好的粒度。
关于java.util.Calendar 未报告正确的 timeInMillis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1896332/