SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,S");
Calendar todayStart = Calendar.getInstance();
todayStart.set(Calendar.HOUR, 0);
todayStart.set(Calendar.MINUTE, 0);
todayStart.set(Calendar.SECOND, 0);
todayStart.set(Calendar.MILLISECOND, 0);
System.out.println(sf.format(todayStart.getTime()));
Calendar todayEnd = Calendar.getInstance();
todayEnd.set(Calendar.HOUR, 33);
todayEnd.set(Calendar.MINUTE, 59);
todayEnd.set(Calendar.SECOND, 59);
todayEnd.set(Calendar.MILLISECOND, 999);
System.out.println(sf.format(todayEnd.getTime()));
取得的时间是
2011-08-08 12:00:00,0
2011-08-09 11:59:59,999
为什么和别人取得不一样,为什么呀!搞了一天了
todayStart.set(Calendar.HOUR_OF_DAY, 0); todayStart.set(Calendar.HOUR_OF_DAY, 23); 不是33吧.
所以Calendar.HOUR,0的时候,以为格式化是24小时,如果是中午的0点的话,就表示为12,所以如果要设置0点,还是用HOUR_OF_DAY 24小时制比较准确。
todayStart.set(Calendar.HOUR, 33); //33是可以的,只是大于11的话,AM变PM,再大于11,PM变AM,同时日期加一天,然后再调整时间为 33-11-11=11
这一句,时间设置为33,会自动涨一天的.33-24 = 9 所以就成了第二天早上9点
Calendar todayStart = Calendar.getInstance();
todayStart.set(Calendar.HOUR_OF_DAY, 0);
todayStart.set(Calendar.MINUTE, 0);
todayStart.set(Calendar.SECOND, 0);
todayStart.set(Calendar.MILLISECOND, 0);
System.out.println(sf.format(todayStart.getTime()));
Calendar todayEnd = Calendar.getInstance();
todayEnd.set(Calendar.HOUR_OF_DAY, 23);
todayEnd.set(Calendar.MINUTE, 59);
todayEnd.set(Calendar.SECOND, 59);
todayEnd.set(Calendar.MILLISECOND, 999);
System.out.println(sf.format(todayEnd.getTime()));是:
2011-08-09 00:00:00,0
2011-08-09 23:59:59,999