java怎么创建日期类_Java基础18-日期类和日历类

一、java.util.Date日期类

private Integer age;//员工年龄

private String hireDate;//入职时间

在系统中存储的是员工的基本信息,包括了员工的年龄,此时使用Integer/int类型来表示年龄是不合理的

难道每年都得修改系统中员工的年龄递增1?

1.类 Date 表示特定的瞬间,精确到毫秒。

c436e20cdc1e0f05716e8458413ceae3.png

39e12e175f23becc6842d651d1215f7c.png

Date类中有一个方法可以返回自1970年以来到现在的毫秒值,这就是getTime方法,是一个long类型的值

a562b639e68127aa07dab4bd8a36ac65.png

bdefd2ae5b0c5db37428f5201f4f0c43.png

Date类中有很多过时的方法,但这些过时的方法中也有比较好用的,比如下边这个

b64ded8aaf02fe5d794312bd64be9ef6.png

96409a6d5388a80f6134064663a9db5c.png这个表示形式比较符合我们中国人的习惯

二、DateFormat格式化日期

格式化: Date类型对象--->String类型

解析:String类型时间---->Object类型

1.格式化日期类中的方法

c9113e515e9562a04cc317904fc770d9.png

2323e18fdab6eae1c1944e317812be2d.png

778fb7e594aa0d9376a75809a1111381.png

72d3dd577c42e14e553b1e2ff9200b79.png

2.格式化:Date类型对象--->String类型

818639f2011bf0f6417e64ac57fdab25.png

10af1e23cf7dfe4b010d3cdfa7526168.png

3.解析:String类型时间---->Object类型

50933aba5d05af25b38557368cdab4a9.png

ac491e09597bd0018f2b640c7626f1e9.png

4.自定义日期模式

fa4afcc01b2493f3b2a6043bf4c7287e.png

18a3e2b703fe94d13565a58582fe43a2.png

三、日历类

1.常用方法

0a949419eba2e1c963186ea5c9fd60c1.png

我们创建一个日历对象

a2416b9203506d1e636436fec655c9a7.png

9b19ffed832687f22bc3d82b9b7dab56.png

发现输出了一大堆不是很好看懂的内容,这可怎么办呢?

2.这就要用到get方法,获取时间字段值

ba5ee0123bd0cd75afbc7cb6db4a5ea1.png

5e9a04991bdbc52be7ef2b135c4ce2eb.png

3.如何添加和设置日期呢?

这就用到add和set方法

6ccd2c1bd532a3530c54f7b94ea0532a.png100天后是几月几号呢?

79b4964c802dd051c42295fca196049d.png

b8d63fcdee4375047e49da34f95435b7.png

ad31fae2c5884b2a0ecf50fd86dcab68.png

4.日历类也可以转化为日期

2911d3c4ece71c71a4b9ab524a8a7ec1.png

be9360003fe1446edfb5091f2de9e035.png

注意:在Calendar类中,月份的表示是以0-11代表1-12月。

案例1:

//计算起止时间

//查询最近一周的信息,如何表示最近这一周

Date current =newDate();//把当前时间作为日历的时间

Calendar c3=Calendar.getInstance();

c3.setTime(current);//把日增加1天,再把时分秒设置为0

c3.add(Calendar.DAY_OF_MONTH, 1);

c3.set(Calendar.HOUR_OF_DAY,0);//时设置成0

c3.set(Calendar.MINUTE, 0);//分设置成0

c3.set(Calendar.SECOND, 0);//秒设置成0

Date endTime=c3.getTime();

c3.add(Calendar.DAY_OF_MONTH,-7);

Date beginTime=c3.getTime();

System.out.println("开始时间="+beginTime.toLocaleString());

System.out.println("结束时间="+endTime.toLocaleString());

b888406101afa38fb878338007d65fc8.png

案例2:获取自己出生到现在的天数

public static voidmain(String[] args){

Calendar my=Calendar.getInstance();

Calendar c=Calendar.getInstance();//设置出生年月日 1995-05-10

my.set(Calendar.YEAR, 1995);

my.set(Calendar.MONTH,4);

my.set(Calendar.DATE,10);//获取时间中的天数

int day =c.get(Calendar.DATE);int myDay =my.get(Calendar.DATE);

System.out.println(day-myDay);

}

案例3:求出距离某年某月某日还有多少天

public static voidmain(String[] args){

Calendar my=Calendar.getInstance();

Calendar c=Calendar.getInstance();//设置年月日 2020-01-01

my.set(Calendar.YEAR, 2020);

my.set(Calendar.MONTH,0);

my.set(Calendar.DATE,1);//获取时间中的天数

int day =c.get(Calendar.DATE);int myDay =my.get(Calendar.DATE);

System.out.println(myDay-day);

}

public static void main(String[] args){

Calendar my = Calendar.getInstance();

Calendar c = Calendar.getInstance();

//设置年月日2020-01-01

my.set(Calendar.YEAR, 2020);

my.set(Calendar.MONTH, 0);

my.set(Calendar.DATE, 1);

//获取时间中的天数

int day = c.get(Calendar.DATE);

int myDay = my.get(Calendar.DATE);

System.out.println(myDay - day);

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值