Java日期时间类

导读:本篇文章讲解 Java日期时间类,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1 Date类

Date类表示日期时间
其构造函数用法(默认获得系统时间 System.currentTimeMillis())

Date date=new Date();

Date类常用的方法

2 DateFormat类

Date 由于2部分组成 date和time(日期和时间)
我们用DateFormat格式化它吧!

2.1 getInstance() 默认

DateFormat df1=DateFormat.getInstance();
System.out.println(df1.format(new Date()));

结果是:21-12-31 下午5:18

2.2 getTimeInstance() 时间

1 默认

DateFormat df2=DateFormat.getTimeInstance();
System.out.println(df2.format(new Date()));

结果:17:25:13

2 DateFormat.参数

Long 参数

 DateFormat df2=DateFormat.getTimeInstance(DateFormat.LONG);
 System.out.println(df2.format(new Date()));

结果:下午05时27分41秒

Short 参数

    DateFormat df2=DateFormat.getTimeInstance(DateFormat.SHORT);
    System.out.println(df2.format(new Date()));

结果:下午5:31

2.3 getDateInstance 日期

1.默认

DateFormat df3=DateFormat.getDateInstance();
System.out.println(df3.format(new Date()));

结果:2021-12-31
2.DateFormat.参数

Long

 DateFormat df3=DateFormat.getDateInstance(DateFormat.LONG);
 System.out.println(df3.format(new Date()));

结果:2021年12月31日

short跟默认一样,不演示

2.4 getDateTimeInstance 日期和时间

默认

DateFormat df4=DateFormat.getDateTimeInstance();
System.out.println(df4.format(new Date()));

结果:2021-12-31 18:06:36

DateFormat.参数
由上面2个方式拼和在一起

DateFormat df4=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
System.out.println(df4.format(new Date()));

2.5 SimpleDateFormat 自定义格式

DateFormat df5=new SimpleDateFormat("yy年MM月dd日");
System.out.println(df5.format(new Date()));

3 Calendar类

calendar 是一个抽象类
翻译:日历
读音:[ˈkælɪndər]
calendar将日期分为6大类,用filed,字段表示

3.1 开始使用

开始必须使用 getInstance
Calendar calendar=Calendar.getInstance();
直接获取 calendar对象(必须操作)

字段 说明
YEAR
MONTH
DATE
HOUR
DATE
MINUTE
SECOND
MINUTE

这个是基本的,还有一些字段没有补充…

3.2 获取Get

  • get()

calendar.get(int field)
获取calendar特定字段的值

  • getTime()

calendar.getTime()
获取calendar对象时间值,date对象

  • getTimeInMillis()

calendar.getTimeInMillis()
返回此calendard对象时间值,以秒为单位

获取特殊例子:

//是否是上午时间 是,返回1
System.out.println(setDayCalendar.get(Calendar.AM));
//一年的第多少天
System.out.println(setDayCalendar.get(Calendar.DAY_OF_YEAR));
//某月中第几周
System.out.println(setDayCalendar.get(Calendar.DAY_OF_WEEK_IN_MONTH));
//周几
System.out.println(setDayCalendar.get(Calendar.DAY_OF_WEEK));
//一年的第多少周
System.out.println(setDayCalendar.get(Calendar.	WEEK_OF_YEAR));

3.3 设置Set

  • set()

设置日历的年、月、日、时、分、秒 (分为6个部分)
一个有4种方法
set(int field,int value) 给calendar某个字段,设置值
set(int year,int month,int date)
set(int year,int month,int date,int hourofDay,int minute)
set(int year,int month,int day,int hour,int minute,int second)

  • SetTime()

calendar.setTime(Date date)
按日期整体设置

  • SetTimeInMillis()

calendar.setTimeInMillis(long millis)
按long秒整体设置

3.4 日期运算

  • add(int field,int amount)

给指定字段添加与减去指定的时间量
用于 设置软件过期时间

    calendar.set(2021,11,1,5,30,30);
    //结果:2021-12-1 5:30:30
    calendar.add(Calendar.DATE,5);//设置5天后时间
    //结果:2021-12-6 5:30:30
    calendar.add(Calendar.DATE,-5);//设置5天前时间
    //结果:2021-11-26 5:30:30

3.5 日期对比

  • after(Object where)
  • before(Object where)

可用于 判断 软件是否过期

比如:
今天时间ToDay是 2022-1-1 5:30:30 小
设置时间SetDay是 2022-1-3 5:30:30 大

ToDaycalendar.before(Setcalendar) 结果是 true
ToDaycalendar.after(Setcalendar) 结果是 false

今天时间ToDay是 2022-1-1 5:30:30 大
设置时间SetDay是 2021-12-31 5:30:30 小

ToDaycalendar.before(Setcalendar) 结果是 false
ToDaycalendar.after(Setcalendar) 结果是 true

3.6 剩余天数

计算现在时间与设置时间 相差天数
可用于 计算 软件剩余的天数

    Calendar setDayCalendar=Calendar.getInstance();
    setDayCalendar.set(2021,11,1,5,30,30);
    setDayCalendar.add(Calendar.DATE,29);
    Calendar toDayCalendar=Calendar.getInstance();
    long toDayLong=toDayCalendar.getTimeInMillis();
    long setDayLong=setDayCalendar.getTimeInMillis();
    long differ=setDayLong-toDayLong; //如是负数,表示过期
    long day=differ/(1000*60*60*24);
    System.out.println(day);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/107100.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!