java.util.Date implements java.io.Serializable, Cloneable, Comparable<Date>
所有日期类型的父类,已知子类Date、 Time、TimestampDate
, Date
表示特定的瞬间,精确到毫秒。
//默认是创建一个代表系统当前日期的Date对象
Date d = new Date();
//创建一个我们指定的时间的Date对象:
下面是使用带参数的构造方法,可以构造指定日期的Date类对象,Date类中年份的参数应该是实际需要代表的年份减去1900,实际需要代表的月份减去1以后的值。
Date d1 = new Date(2009-1900, 6-1, 12); (注意参数的设置啊!)
正确获得一个date对象所包含的信息
如:
Date d2 = new Date(2009-1900, 6-1, 12);
//获得年份 (注意年份要加上1900,这样才是日期对象d2所代表的年份)
int year = d2.getYear() + 1900;
//获得月份 (注意月份要加1,这样才是日期对象d2所代表的月份)
int month = d2.getMonth() + 1;
//获得日期
int date = d2.getDate();
//获得小时
int hour = d2.getHours();
//获得分钟
int minute = d2.getMinutes();
//获得秒
int second = d2.getSeconds();
//获得星期 (注意:0代表星期日、1代表星期1、2代表星期2,其他的一次类推了)
int day = d2.getDay();
java.util.Calendar implements Serializable, Cloneable, Comparable<Calendar>
Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些,是一个用来操作日期的辅助类
Calendar类是一个抽象类,在实际使用时实现特定的子类的对象。由于Calendar类是抽象类,且Calendar类的构造方法是protected的,所以无法使用Calendar类的构造方法来创建对象,API中提供了getInstance方法用来创建对象。
创建一个代表系统当前日期的Calendar对象:
Calendar c = Calendar.getInstance();//默认是当前日期
创建一个指定日期的Calendar对象:
使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。
Calendar c1 = Calendar.getInstance();
c1.set(2009, 6 - 1, 12);
Calendar类中的一些些常量:
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——星期几
java.util.GregorianCalendar extends Calendar
GregorianCalendar
是 Calendar
的一个具体子类,提供了世界上大多数国家使用的标准日历系统。
GregorianCalendar类对象的创建
GregorianCalendar有自己的构造方法,而其父类Calendar没有公开的构造方法哦。
GregorianCalendar() 在具有默认语言环境的默认时区内使用当前时间构造一个默认的 GregorianCalendar。 |
GregorianCalendar(int year, int month, int dayOfMonth) 在具有默认语言环境的默认时区内构造一个带有给定日期设置的 GregorianCalendar。 |
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute) 为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的GregorianCalendar。 |
GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second) 为具有默认语言环境的默认时区构造一个具有给定日期和时间设置的GregorianCalendar。 |
创建一个代表当前日期的GregorianCalendar对象
GregorianCalendar gc = new GregorianCalendar();
//创建一个代表2009年6月12日的GregorianCalendar对象(注意参数设置哦,与其父类是一样的哦,月份要减去1)
GregorianCalendar gc = new GregorianCalendar(2009,6-1,12);
字段属性什么的都是随其父Calendar了,另外:GregorianCalendar有下面一个方法:
isLeapYear
(int year)
: 确定给定的年份是否为闰年
java.text.DateFormat extends Format
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并分析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、分析(文本-> 日期)和标准化。将日期表示为 Date
对象,或者表示为从 GMT(格林尼治标准时间)1970 年,1 月 1 日 00:00:00 这一刻开始的毫秒数。
java.text.SimpleDateFormat extends DateFormat
SimpleDateFormat
是一个以与语言环境相关的方式来格式化和分析日期的具体类。它允许进行格式化(日期 ->文本)、分析(文本 -> 日期)和规范化。
所以本类可以实现:String 到 Date Date到String的互转,如下:
SimpleDateFormat对象最常用的就是一下两招了:
//注意构造函数中是SimpleDateFormat类解析日期的模式,大小写代表的意义完全不一样哦
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//日期到字符串的转换
String today = df.format(new Date());
//字符串到日期的转换
Date date = df.parse("2009-06-12 02:06:37");
System.out.println(df.format(new Date()));
posted on 2012-07-04 19:38
zhanghu198901 阅读(1001)
评论(0) 编辑 收藏