黑马程序员技术交流社区
标题:
Calendar类
[打印本页]
作者:
lily
时间:
2011-9-15 17:25
标题:
Calendar类
[code=java]import java.util.*;
class TestCalendar {
public static void main(String[] args) {
Calendar c1=Calendar.getInstance();
System.out.println(c1.get(Calendar.YEAR)+"年"+c1.get(c1.MONTH)+
"月"+c1.get(c1.DAY_OF_MONTH)+"日"+c1.get(c1.HOUR)+":"
+c1.get(c1.MINUTE)+":"+c1.get(c1.SECOND));
c1.add(c1.DAY_OF_YEAR,315);
System.out.println(c1.get(Calendar.YEAR)+"年"+c1.get(c1.MONTH)+
"月"+c1.get(c1.DAY_OF_MONTH)+"日"+c1.get(c1.HOUR)+":"
+c1.get(c1.MINUTE)+":"+c1.get(c1.SECOND));
}
}[/code]
大家帮忙看下这个程序,是要在显示器上显示当前时间和315天后的时间,但是我运行显示的时间却不正确,月份少了1个月,小时如果是12点前则正确,如果是中午12点后则少了12小时.
即: 如现在是2011年9月15日17:38:04,显示就是2011年8月15日5:38:04
如现在是2011年9月15日 5:38:04,显示就是2011年8月15日5:38:04.帮忙看下哪里出了问题
作者:
匿名
时间:
2011-9-15 21:32
呵呵,代码没全贴出来,还真看不出是哪儿出了问题。。。[code=java]import java.util.*;
import java.text.SimpleDateFormat;
class MyTimerTask extends TimerTask {
private Timer tm = null;
public MyTimerTask(Timer tm) {
this.tm = tm;
}
public void run()
{
try
{
Runtime.getRuntime().exec("calc.exe");
}catch (Exception e)
{
e.printStackTrace();
}
}
}
public class TestCalendar {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Calendar cl = Calendar.getInstance();
System.out.println(cl.get(Calendar.YEAR)+ "年" +cl.get(cl.MONTH) +"月" + cl.get(cl.DAY_OF_MONTH)+"日"
+ cl.get(Calendar.HOUR_OF_DAY)+ ":" +cl.get(cl.MINUTE) +":" + cl.get(cl.SECOND));
cl.add(cl.DAY_OF_YEAR, 315);
System.out.println(cl.get(Calendar.YEAR)+ "年" +cl.get(cl.MONTH) +"月" + cl.get(cl.DAY_OF_MONTH)+"日"
+ cl.get(Calendar.HOUR_OF_DAY)+ ":" +cl.get(cl.MINUTE) +":" + cl.get(cl.SECOND));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日");
try
{
Date d = sdf.parse("2003-03-15") ;
System.out.println(sdf1.format(d));
}catch(Exception e)
{
e.printStackTrace();
}
Timer tm = new Timer();
tm.schedule(new MyTimerTask(tm), 3000);
tm.cancel();
}
}[/code]
作者:
匿名
时间:
2011-9-15 22:05
Calendar.Month : 一年中的第一个月是 JANUARY,它为 0 ,,9月就是8
所以 你这里的月份要+1显示
小时少了,用这个 字段 HOUR_OF_DAY 24小时的。。HOUR是12小时的
作者:
匿名
时间:
2011-9-15 22:41
哦,是的,HOUR_OF_DAY 就对了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2