java中calendar的用法_技术分享 | Java中Calendar类的基本用法

原标题:技术分享 | Java中Calendar类的基本用法

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

讲述java中Calendar类的基本用法

de0e7d4000e9ede6c7dd2d16d41ec71a.png

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

在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());返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值