------- android培训、java培训、期待与您交流! ----------
概述
最初用于处理日期表示和处理的类是java,util.Date,但是由于其设计上的诸多问题,受到很多诟病,于是Date过时作废的功能全部被一直到了java.util.Calendar这个类中。而与日期格式处理相关的一个类是java.text.DateFormat。下面做下简单介绍。
Date
Java.util.Date有三个子类,java.sql.Date,java.sql.Time和java.sql.Timestamp,它们都是都是用来处理JDBC操作中与日期相关的存取操作的类。
由于Date中用于年月日等时间设置的方法均已作废,故Date往往用来获得系统当前时间,即new Date().getTime()获得1970年1月1日到此刻的毫秒数,也可以通过new Date(long time)根据毫秒参数创建Date对象(抑或new Date().setTim(long time))。
Calendar
Calendar是一个抽象类,可以通过其静态方法getInstance()获得当前时间的Calendar对象。当然也可以对Calendar的子类GregorianCalendar进行实例化。Calendar取代Date提供了丰富的日期操作的方法,可以设置年月日星期季度等各种参数,它可以完全取代Date和DateFormat的组合对日期格式的处理,并且对日期的加减操作也特别方便。
DateFormat
用的最多的是它的子类SimpleDateFormat,它提供了许多方法用来将Date对象转换成指定格式的字符串形式,也可以将符合要求的日期格式字符串形式转换成Date对象,这在实际用途中很有用处。
日期处理
日期到字符串
//Date和DateFormat配合使用
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
Date date = new Date();
String dateStr = sdf.format(date);
//使用Calendar对象
Calendar c = Calendar.getInstance();
String dateStr = c.get(Calendar.YEAR)+"年"
+(c.get(Calendar.MONTH)+1)+"月"
+c.get(Calendar.DAY_OF_MONTH) +"日 "
+c.get(Calendar.HOUR_OF_DAY) +":"
+c.get(Calendar.MINUTE);
System.out.println(dateStr);
日期格式字符串到日期类对象
//Date和DateFormat配合使用
String dateStr = "2013年7月24日 5:22";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
Date date = sdf.parse(dateStr);
日期加减处理
//Calendar的add方法有两个参数,第一个指定加减的单位,第二个指定加减的数量
Calendar c = getCalendar();
c.add(Calendar.YEAR, -1);
c.add(Calendar.MINUTE, -30);
Date和Calendar的转换
Calendar c = getCalendar();
Date date = new Date(c.getTimeInMillis());//或者Date date = c.getTime();反之:c.setTime(date)即可。