Date、Calendar、GregorianCalendar、DateFormat、SimpleDateFormat

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_37636695/article/details/79117396

1、         Date类

Date类对象的创建:

n         创建一个当前时间

//默认是创建一个代表系统当前日期的Date对象

  Date d = new Date();

n         创建一个我们指定的时间的Date对象:

下面是使用带参数的构造方法,可以构造指定日期的Date类对象,Date类中年份的参数应该是实际需要代表的年份减去1900,实际需要代表的月份减去1以后的值。

//创建一个代表2009年6月12号的Date对象

Date d1 = new Date(2009-1900, 6-1, 12); (注意参数的设置啊!)

2、         Calendar类

Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些

l         Calendar类对象的创建

Calendar类是一个抽象类,在实际使用时实现特定的子类的对象。由于Calendar类是抽象类,且Calendar类的构造方法是protected的,所以无法使用Calendar类的构造方法来创建对象,API中提供了getInstance方法用来创建对象。

n         创建一个代表系统当前日期的Calendar对象

Calendar c = Calendar.getInstance();//默认是当前日期

n         创建一个指定日期的Calendar对象

使用Calendar类代表特定的时间,需要首先创建一个Calendar的对象,然后再设定该对象中的年月日参数来完成。

//创建一个代表2009年6月12日的Calendar对象

Calendar c1 = Calendar.getInstance();

c1.set(2009, 6 - 1, 12);

3、         GregorianCalendar类

GregorianCalendar 是 Calendar 的一个具体子类,提供了世界上大多数国家使用的标准日历系统。

GregorianCalendar类对象的创建

GregorianCalendar有自己的构造方法,而其父类Calendar没有公开的构造方法哦。

创建一个代表当前日期的GregorianCalendar对象

GregorianCalendar gc = new GregorianCalendar();

//创建一个代表2009年6月12日的GregorianCalendar对象(注意参数设置哦,与其父类是一样的哦,月份要减去1)

GregorianCalendar gc = new GregorianCalendar(2009,6-1,12);

字段属性什么的都是随其父Calendar了,呵

另外:GregorianCalendar有下面一个方法:

isLeapYear(int year) 
          确定给定的年份是否为闰年

4、         DateFormat类

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并分析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期 -> 文本)、分析(文本-> 日期)和标准化。将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年,1 月 1 日 00:00:00 这一刻开始的毫秒数。

5、         SimpleDateFormat类

public class 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()));

   

6、         日期类对象之间的互转

l         Date类对象与long型时间的互转

//将Date类的对象转换为long型时间

Date d= new Date();

//使用对象的getTime()方法完成

long dLong = d.getTime();

 

//将long型时间转换为Date类的对象

long time = 1290876532190L;

//使用Date的构造方法完成

Date d2 = new Date(time);

l         Calendar对象和long型时间之间的互转

// 将Calendar对象转换为相对时间

Calendar c = Calendar.getInstance();

long t1 = c.getTimeInMillis();

 

// 将相对时间转换为Calendar对象

Calendar c1 = Calendar.getInstance();

long t = 1252785271098L;

c1.setTimeInMillis(t1);

l         Calendar对象和Date对象之间的互转

// 将Calendar对象转换为相对时间

Calendar c = Calendar.getInstance();

Date d = c.getTime();

// 将相对时间转换为Calendar对象

Calendar c1 = Calendar.getInstance();

Date d1 = new Date();

//通过setTime()方法后,日历c1所表示的日期就d1的日期

c1.setTime(d1);


猜你喜欢

转载自blog.csdn.net/qq_37636695/article/details/79117396