Java - Calendar类的使用

今天在写代码时需要用到时间相关的类,一开始,数据库中存的数据类型是timestamp的,所以在Java中就使用了

Timestamp类型,但当调用Timestamp类型的方法时发现,它的很多方法都是deprecated,并且运行结果与预期有所差异。

Eclipse的自动提示我使用Calendar类来代替Timestamp类的使用。

 1 private static void testCalendar() {
 2         Timestamp ts = new Timestamp(System.currentTimeMillis());
 3         Calendar cal = Calendar.getInstance();
 4         cal.setTime(ts);
 5 
 6         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
 7         System.out.println(sdf.format(ts));
 8 
 9         Calendar cal2 = Calendar.getInstance();
10         cal2.set(Calendar.YEAR, 2015);
11         cal2.set(Calendar.MONTH, 2);
12         System.out.println(cal2.getActualMaximum(Calendar.DAY_OF_MONTH));
13         System.out.println(cal2.get(Calendar.YEAR) + "-"
14                 + cal2.get(Calendar.MONTH) + "-"
15                 + cal2.get(Calendar.DAY_OF_MONTH) + " " +
16                 + cal2.get(Calendar.HOUR_OF_DAY) + ":"
17                 + cal2.get(Calendar.MINUTE) + ":" 
18                 + cal2.get(Calendar.SECOND));
19     }

通过调用Calendar的static方法得到一个Calendar实例,并且使用java.util.Date类型来进行初始化,

java.sql.Timestamp类型是Date类的子类,因而可以使用它来进行初始化操作。

这里有两点需要注意

1. Calendar的Month是从0开始计数的,也就是说一月是0,二月是1,....,十二月是11;

2. 使用SimpleDateFormat时,格式化字符串需要区分是12小时制还是24小时制

1 SimpleDateFormat twelvesSDF= new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//12小时制  
2 
3 SimpleDateFormat TwentyfourSDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//24小时制  

 

posted @ 2015-04-07 23:58  feiling  阅读(526)  评论(0编辑  收藏  举报