联系我们 | 加入收藏

  大连服务外包公共培训服务平台
当前位置:首页 > IT资讯 > 正文
Java中Calendar类的基本用法
时间:2019/10/23 8:56:29来源:网络阅读:4691

小编今天给大家分享一篇技术文章——

讲述java中Calendar类的基本用法

对于时间类,这篇主要说明各种现实情况下如何取值,怎么定向取值,得到自己想要的时间参数。

在java中时间类主要有Date、Calendar,暂时只介绍 java.util.*下的时间类,这篇主要内容有以下几个。

1、如何获取当前时间参数

2、如何过去某一个月第一天和最后一天

首先,我们需要了解API下对其的介绍,让在使用的时候明白为什么这么写?

对于Date,很多方法已经过时迁移到了Calendar类上,但是这是最初的时间类,构造方法主要介绍两种即

Date date= new Date();//分配对象并初始话

Date date= new Date(long date)//分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日00:00:00 GMT)以来的指定毫秒数。

可以看得出来,Date是以历元为标准的,简单的验证下你的猜想。new Date().getYear() 的值是 117 然而今年是 2017 。

对于Calendar,与Date不同的是,他对Date的时间历元进行偏移,要是看括号里的有点晕可不看。API(Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量)。

Calendar不得不说的就是类方法 getInstance,Calendar 的 getInstance 方法返回一个 Calendar 对象,其日历字段已由当前日期和时间初始化:这个方法你必须要知道,不然你玩什么Calendar呢是不是?

由于这个类是一个抽象类,不能直接创建对象,但是它给提供了一个静态方法来获取对象,实际底层是

createCalendar(TimeZone.getDefaultRef(), Locale.getDefault(Locale.Category.FORMAT));来创建了一个对象。

而我们在使用时是可以直接调用来获取到对象Calendar rightNow = Calendar.getInstance();这种形式其实也就是父类引用指向子类对象的一种多态形式。

1、如何过去当前时间参数

Date NowDate = new Date();

SimpleDateFormat formatter =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

CurrentTime = formatter.format(NowDate);

return CurrentTime;

2、如何过去某一个月第一天和最后一天

public static String getLastDayOfMonth(int year, int month) {

Calendar cal = Calendar.getInstance();

cal.set(Calendar.YEAR, year);

cal.set(Calendar.MONTH, month);

cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DATE));

return new SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime());

}

public static String getFirstDayOfMonth(int year, int month) {

Calendar cal = Calendar.getInstance();

cal.set(Calendar.YEAR, year);

cal.set(Calendar.MONTH, month);

cal.set(Calendar.DAY_OF_MONTH,cal.getMinimum(Calendar.DATE));

return new SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime());

}