Calendar 的 set() 下午时间相差十二小时
做一个定时器;但是下午时间为第二天的,代码如下:
public class test {
	public static void main(String[] args) {
		Calendar cal = Calendar.getInstance();
		System.out.println("现在时间:"+cal.getTime());
		String time="13:00:00";//预定时间:
		String[] str = time.split(":");
		if(str.length>0){
			cal.set(Calendar.HOUR, Integer.parseInt(str[0]));
		}
		if(str.length>1){
			cal.set(Calendar.MINUTE, Integer.parseInt(str[1]));
		}
		if(str.length>2){
			cal.set(Calendar.SECOND, Integer.parseInt(str[2]));
		}
		System.out.println("预定时间:"+cal.getTime());
	}
--------------------------
结果:
现在时间:Sat Apr 12 14:08:06 CST 2014
预定时间:Sun Apr 13 01:00:00 CST 2014
结果:
------解决方案--------------------public class test
{
	public static void main(String[] args)
	{
		Calendar cal = Calendar.getInstance();
		System.out.println("现在时间:" + cal.getTime());
		String time = "01:00:00";// 预定时间:
		String[] str = time.split(":");
		if (str.length > 0)
		{
			cal.set(Calendar.HOUR, Integer.parseInt(str[0]));
		}
		if (str.length > 1)
		{
			cal.set(Calendar.MINUTE, Integer.parseInt(str[1]));
		}
		if (str.length > 2)
		{
			cal.set(Calendar.SECOND, Integer.parseInt(str[2]));
		}
		System.out.println("预定时间:" + cal.getTime());
	}
}
把13点改为1点,看一下源代码吧,源代码中说的很清楚,HOUR用于12小时制,中午和午夜用 0 表示,不用 12 表示;