日期和时间封装类
1、 Data类
Java日期和时间采用Data类。Data类在java.util包中。
Data类构造函数:
1) Data() 采用当前时间初始化对象;
2) Data(long millisec) 采用1970年1月1日起时间毫秒数来初始化对象。
Data类的方法:
1) boolean after(Data d)、boolean before(Data d)
Data对象和参数指定日期较早晚,返回boolean值。
2) boolean equals(Object data)
判断Data对象和参数中日期是否相等。
3) int compareTo(Data d)
Data对象和日期参数比较,返回int值:
相等则返回0;
Data对象在参数日期参数后,返回正数;
否则返回负数
4) long getTime( )
返回1970 年 1 月 1 日 00:00:00 GMT起时间毫秒数
5) void setTime(long time)
用1970 年 1 月 1 日 00:00:00 GMT起时间毫秒数设置日期和时间
6) String toString()
把Date 对象转换为以下形式的 String:dow mon dd hh:mm:ss zzz yyyy,其中dow标识星期几
2、 日期格式化:
一、SimpleDateFormat类
SimpleDateFormat类是个日期格式化类。SimpleDataFormat是一个以语言环境敏感的方式来格式化和分析日期的类。样例:
Date dNow = new Date();
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
ft.format(dNow)
二、使用printf格式化Data对象的输出格式:
printf方法可以很轻松地格式化时间和日期。使用两个字母格式,它以%t开头并且以表示格式的字母结尾。
1) %tc
包括全部日期和时间信息,星期六 十月 27 14:21:20 CST 2007
2) %tF
"年-月-日"格式 2007-10-27
3) %tD "
月/日/年"格式 10/27/07
4) %tr
"HH:MM:SS PM"格式(12时制) 02:25:51 下午
5) %tT
"HH:MM:SS"格式(24时制)14:28:16
6) %tR
"HH:MM"格式(24时制)14:28
三、解析时间字符串为时间对象:
SimpleDateFormat 类有一些附加的方法,特别是parse(),它试图按照给定的SimpleDateFormat 对象的格式化存储来解析字符串。样例:
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd");
String input = "1818-11-11";
Date t;
t = ft.parse(input);
3、 进程休眠
可以采用如下方式进入停滞状态(阻塞当前线程),让出CPU的使用。样例:
Thread.sleep(1000*3); // 休眠3秒
4、 Calender类
如何设置和获取日期数据的特定部分呢,比如说小时,日,或者分钟?又如何在日期的这些部分加上或者减去值呢? 答案是使用Calendar 类。
Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。
Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。
1) 创建Calendar类对象。由于Calendar类是个抽象类,其创建对象方式不同:
Calendar c = Calendar.getInstance(); //创建一个Calendar对象,时间是当前时间
2) 修改calendar对象的时间
方式一:public final void set(int year,int month,int date)
样例:
c.set(2009, 6 - 1, 12);
方式二:指定日期中某个字段,修改
Calendar.YEAR 年份
Calendar.MONTH 月份
Calendar.DATE 日期
Calendar.DAY_OF_MONTH 日期,和上面的字段意义完全相同
Calendar.HOUR 12小时制的小时
Calendar.HOUR_OF_DAY 24小时制的小时
Calendar.MINUTE 分钟
Calendar.SECOND 秒
Calendar.DAY_OF_WEEK 星期几
样例:
c.set(Calendar.DATE,10);
c.set(Calendar.YEAR,2008);
3) 获取Calendar对象的具体某个字段
样例:
// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得分钟
int minute = c1.get(Calendar.MINUTE);
// 获得秒
int second = c1.get(Calendar.SECOND);
// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)
int day = c1.get(Calendar.DAY_OF_WEEK);
4) Calendar对象的具体某个加减操作
样例:
c.add(Calendar.DATE, 10); //10天后时间
c.add(Calendar.DATE, -10); //10天前时间
5、 GregorianCalendar
GregorianCalendar类实现公历日历。详见类定义。
原文地址:https://www.cnblogs.com/yickel/p/11830778.html