Java中与日期时间相关的类和方法
文章目录
一、currentTimeMillis()方法
System 类中的方法 currentTimeMillis() 方法可以返回从 GMT1970 年 1 月 1 日 00 : 00 : 00 开始到当前时刻的毫秒数。
System.currentTimeMillis(); //返回值为long类型
二、Date类
1.构造方法
(1)public Date (); 以当前系统时间创建一个Date对象;
(2)public Date (long date); 用指定的毫秒级时间创建一个Date对象,代表自1970年起经过了 date 毫秒后的时间。
Date date1 = new Date();
System.out.println(date1); //输出当前系统时间
Date date2 = new Date(4516379);
System.out.print(date2); //输出为 “Thu Jan 01 09:15:16 CST 1970”
注:Date 的构造函数共有四个,但其他两个已经过时,因此不做说明。
2,常用方法
功能 | 方法 |
---|---|
判断日期是否在 when 之后 | public boolean after(Date when) |
判断日期是否在 when 之前 | public boolean before(Date when) |
判断日期和 when 的时间先后顺序,早于、相等、晚于分别返回 -1,0,1 | public int compareTo(Date when) |
判断两个日期代表的时间点是否相同 | public boolean equals(Object obj) |
设置 Date 对象代表的时间 | public void setTime(long time) |
以字符串形式输出当前日期(与直接输出对象的效果相同) | public String toString() |
三、Calendar类
Calendar 是一个抽象的基类,GregorianCalendar 为其一个具体子类。
1,构造方法
(1)Calendar calendar = Calendar.getInstance();
使用默认时区和语言环境获得一个日历,其代表的时间为当前系统时间。
(2)Calendar calendar = new GregorianCalendar();
使用子类获得一个日历,其代表的时间为当前系统时间。
2,常量说明
3,常用方法
(1)get( field: int) : int
返回一个给定日历域的值
Calendar calendar = Calendar.getInstance();//利用系统当前时间创建一个日历对象
System.out.println(calendar.get(Calendar.YEAR)); //获得当前年份
System.out.println(calendar.get(Calendar.MONTH)); //获得当前月份
System.out.println(calendar.get(Calendar.DATE)); //当前时间是当前月的第几天
System.out.println(calendar.get(Calendar.HOUR)); //当前是几点
System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); //当前是当天的第几小时
System.out.println(calendar.get(Calendar.DAY_OF_WEEK)); //当前天是当前周中的第几天
System.out.println(calendar.get(Calendar.DAY_OF_MONTH)); //当前天是当前月的第几天
System.out.println(calendar.get(Calendar.DAY_OF_YEAR)); //当前天是当前年的第几天
System.out.println(calendar.get(Calendar.WEEK_OF_MONTH)); //当前周是当前月的第几周
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR)); //当前周是当前年的第几周
假设当前日期为 “2020年 11月 12日 周四 上午 09:18:46”,则输出如下:
2020 //表示是2020年
10 //表示是11月(0代表一月)
12 //表示是12号
9 //表示是9点
9 //表示当前时间是当天的第九个小时
5 //表示是当前周的第五天,即周四(1代表周日)
12 //表示是当前月的第12天
317 //表示是当前年的第317天
2 //表示是当前月的第二周
46 //表示是当前年的第46周
(2)getTime() : Date
返回代表当前具体时间的对应 Date 对象
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime());
假设当前日期为 “2020年 11月 12日 周四 上午 09:56:28”,则输出如下:
Thu Nov 12 09:56:28 CST 2020
(3)set( field: int, value: int) : void
设置日历对象的时间值
Calendar calendar = Calendar.getInstance(); //获取当前时间
System.out.println(calendar.getTime());
calendar.set(Calendar.HOUR, 1); //将calendar对象的 HOUR 量改为 1
System.out.println(calendar.getTime());
假设当前日期为 “2020年 11月 12日 周四 上午 10:05:14”,则输出如下:
Thu Nov 12 10:05:14 CST 2020
Thu Nov 12 01:05:14 CST 2020 //更改后小时的数值从10变为1
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime());
calendar.set(Calendar.DAY_OF_YEAR, 1); //将calendar对象所代表的日期改为当前年的第一天
System.out.println(calendar.getTime());
假设当前日期为 “2020年 11月 12日 周四 上午 10:05:14”,则输出如下:
Thu Nov 12 10:07:53 CST 2020
Wed Jan 01 10:07:53 CST 2020 //日期变为2020年的第一天,具体的时、分、秒没有变
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime());
calendar.set(Calendar.WEEK_OF_MONTH, 1); //将当前周改为当前月的第一周
System.out.println(calendar.getTime());
假设当前日期为 “2020年 11月 12日 周四 上午 10:12:01”,则输出如下:
Thu Nov 12 10:12:01 CST 2020
Thu Nov 05 10:12:01 CST 2020 //将当前周改为第一周,月份和具体的星期几不变
(4)更多的set方法
<1> set (int year, int month, int date) : void
设置日历字段中的值 YEAR , MONTH和 DAY_OF_MONTH 。
<2> set (int year, int month, int date, int hourOfDay, int minute)
设置日历字段中的值 YEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY和 MINUTE 。
<3> set (int year, int month, int date, int hourOfDay, int minute, int second)
设置字段中的值 YEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY , MINUTE和 SECOND 。
<4> setTime (date: Date) : void
用给定的 Date 对象来设置该日历的时间值
(5)add(field: int, amount: int) : void
对给定的日历域增加或减去给定数目的时间
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime());
calendar.add(Calendar.HOUR, 1); //将当前的小时加一
System.out.println(calendar.getTime());
假设当前日期为 “2020年 11月 12日 周四 上午 10:24:25”,则输出如下:
Thu Nov 12 10:24:25 CST 2020
Thu Nov 12 11:24:25 CST 2020 //10点变成了11点
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime());
calendar.add(Calendar.WEEK_OF_MONTH, 2); //将当前时间向后推后两周
System.out.println(calendar.getTime());
假设当前日期为 “2020年 11月 12日 周四 上午 10:28:06”,则输出如下:
Thu Nov 12 10:28:06 CST 2020
Thu Nov 26 10:28:06 CST 2020 //推后两周即加了14天,所以12号变成了26号
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.getTime());
calendar.add(Calendar.YEAR, -2); //将当前时间向前推前两年
System.out.println(calendar.getTime());
假设当前日期为 “2020年 11月 12日 周四 上午 10:30:12”,则输出如下:
Thu Nov 12 10:30:12 CST 2020
Mon Nov 12 10:30:12 CST 2018 //2020年变成了2018年,具体星期几也发生了变化
本文地址:https://blog.csdn.net/qq_46027243/article/details/109633737
推荐阅读
-
Java日期时间API系列5-----Jdk7及以前的日期时间类TimeUnit在并发编程中的应用
-
Java日期时间API系列12-----Jdk8中java.time包中的新的日期时间API类,日期格式化,常用日期格式大全
-
Java日期时间API系列8-----Jdk8中java.time包中的新的日期时间API类的LocalDate源码分析
-
Java日期时间API系列11-----Jdk8中java.time包中的新的日期时间API类,使用java8日期时间API重写农历LunarDate
-
Java日期时间API系列9-----Jdk8中java.time包中的新的日期时间API类的Period和Duration的区别
-
在Python中操作日期和时间之gmtime()方法的使用
-
PHP中UNIX时间戳和日期间的转换与计算实例
-
Java中成员变量与局部变量的区别、对象类型作为方法的参数和方法的返回值
-
Java中的日期与时间
-
荐 浅谈Java中类和对象的初始化、实例化以及方法重载的底层机制