Java从零开始学三十一(DATE和Calendar类)
一、Date类
Date类是一个相对较为简单的操作类,在使用中直接使用java.util.Date类的构造方法并进行输出就可以得到一个完整的日期
二、Calendar类
Calendar类可以将取得的时间精确到毫秒。但是,这个类本身是一个抽象类,如果要想使用一个抽象类,则必须依靠对象的多态性,通过子类进行父类的实例化操作,Calendar的子类是GregorianCalendar类。
package com.pb.demo3; import java.util.Calendar; import java.util.GregorianCalendar; /* * 使用Calendar类显示当前时间, * 使用get方法表示时间,日期的各个部分数字如:年,月,日 * 使用set方法设置日期字段,将当前时间设置为9月 * 使用add方法为给定的日历字段添加或者减去指定的时间量,在当前时间上加10天 * 使用GregorianCalendar的isLeapYear方法判断是否是闰年 */ public class CalendarDemo { public static void main(String[] args) { /* * 将当前日期时间表是为年,月,日,时,分,秒 */ Calendar calendar=Calendar.getInstance(); //日历对象 int year=calendar.get(Calendar.YEAR); int month=calendar.get(Calendar.MONTH)+1; //月份默认是0-11需要手动加1 int day=calendar.get(Calendar.DAY_OF_MONTH); int hour=calendar.get(Calendar.HOUR_OF_DAY); int minute=calendar.get(Calendar.MINUTE); int second=calendar.get(Calendar.SECOND); System.out.println("今天是: "+year+"年"+month+"月"+day+"日"); System.out.println("现在时: "+hour+"时"+minute+"分"+second+"秒"); /*将当前时间的月份设置为9 月*/ calendar.set(Calendar.MONTH, 8); //设置月份时-1 int year1=calendar.get(Calendar.YEAR); int month1=calendar.get(Calendar.MONTH)+1; //月份默认是0-11需要手动加1 int day1=calendar.get(Calendar.DAY_OF_MONTH); System.out.println("今天是: "+year1+"年"+month1+"月"+day1+"日"); //将当前时间加10天 calendar.add(Calendar.DAY_OF_MONTH, 10); int year2=calendar.get(Calendar.YEAR); int month2=calendar.get(Calendar.MONTH)+1; //月份默认是0-11需要手动加1 int day2=calendar.get(Calendar.DAY_OF_MONTH); System.out.println("今天是: "+year2+"年"+month2+"月"+day2+"日"); /*判断 是否是闰年*/ GregorianCalendar gregorianCalendar=new GregorianCalendar(); boolean flag=gregorianCalendar.isLeapYear(gregorianCalendar.get(gregorianCalendar.YEAR)); if(flag==true){ System.out.println("今年是闰年!"); }else{ System.out.println("今年是不闰年!"); } } }
三、SimpleDateFormat类
格式化模板
No.
|
标记
|
描述
|
1
|
y
|
年,年份是四位数字,所以需要使用“yyyy”表示年。
|
2
|
M
|
年中的月份,月份是两位数字,所以需要使用“MM”表示月。
|
3
|
d
|
月中的天数,天数是两位数字,所以需要使用“dd”表示日。
|
4
|
H
|
一天中的小时数(24小时),小时是两位数字,使用“HH”表示小时。
|
5
|
m
|
小时中的分钟数,分钟是两位数字,使用“mm”表示分钟。
|
6
|
s
|
分钟中的秒数,秒是两位数字,使用“ss”表示秒。
|
7
|
S
|
毫秒数,毫秒数字是三位数字,使用“SSS”表示毫秒。
|
四、例子
package com.pb.demo3; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateTest { public static void main(String[] args) { //声明SimpleDateFormat对象并规定格式 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //获得当前时间 Date date=new Date(); System.out.println("当前时间: "+sdf.format(date)); String newStr="2011-08-25 14:07:26"; try { Date newdate=sdf.parse(newStr); System.out.println("转换后的时间:"+newdate); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }