Java 时间、日期类

 

Java提供了Date、Calendar两个类用于处理日期、时间。

但Date的大部分构造器、方法已经过时,不在推荐使用,Calendar类又过于复杂,所以Java8推出了一套新的时间日期库。

 

 

1、Date类

Date常用的构造函数:

Date()     生成一个代表当前日期时间的Date对象,相当于Date(System.currentTimeMillis())

Date(long date)   指定时间戳,默认单位ms。距1970.1.1   00:00:00的毫秒数。

 

Date常用方法:

boolean  after(Date  date)    判断是否在该时间日期之后

boolean before(Date date)

long  getTime()    获取时间戳

void  setTime()   设置时间戳

 

少用Date,尽量用Calendar代替。

 

 

 

2、Calendar类

Calendar类常用方法:

Calendar calendar=Calendar.getInstance();     使用静态方法获取实例,默认为当前的时间日期
calendar.get(Calendar.YEAR)    获取指定字段的值,参数为预定义的常量,返回值均为int。月份比较特殊,0-11,0表示1月。
calendar.set(Calendar.YEAR,2020);   设置指定字段的值

calendar.set(2020,1,1); 同时设置年月日
calendar.set(2020,1,1,1,1,1);   同时设置年月日时分秒

calendar.add(Calendar.YEAR,2); 增加指定字段的值

calendar.add(Calendar.YEAR,-1); 可以为负数

参数、返回值均为int型。



Calendar类示例:

 1 package test;
 2 
 3 import java.util.Calendar;
 4 
 5 //需要实现Cloneable接口
 6 public class Test{
 7        public static void main(String[] args) {
 8            //使用静态方法获取实例,默认为当前的时间日期
 9            Calendar calendar=Calendar.getInstance();
10            //获取年份,打YEAR选择即可
11            System.out.println(calendar.get(Calendar.YEAR));
12            //获取月份,月份从0-11,0表示1月
13            System.out.println(calendar.get(Calendar.MONTH));
14            //获取日
15            System.out.println(calendar.get(Calendar.DATE));
16            //获取时
17            System.out.println(calendar.get(Calendar.HOUR));
18            //设置指定字段的值
19            calendar.set(Calendar.YEAR,2020);
20            //同时设置年月日
21            calendar.set(2020,1,1);
22            //同时设置年月日时分秒
23            calendar.set(2020,1,1,1,1,1);
24            //增加指定字段的值,年份+1
25            calendar.add(Calendar.YEAR,1);
26            //可以为负数,年份-1
27            calendar.add(Calendar.YEAR,-1);
28        }
29 }

 

 

 

3、Java8新增的时间日期包

LocalDate类:代表当前时区的日期

LocalTime类:代表当前时区的时间

LocalDateTime:代表当前时区的日期时间

以上三个类都提供了静态方法now()获取当前的时间/日期/时间日期对象。

示例:

 1 package test;
 2 
 3 import java.time.LocalDateTime;
 4 
 5 public class Test{
 6        public static void main(String[] args){
 7            //使用静态方法now()获取当前时间日期
 8            LocalDateTime ldt=LocalDateTime.now();
 9            //使用plusXxx(int x)增加指定字段的值
10            ldt.plusDays(1);   //Day字段的值+1
11            //使用minusXxx(int x)方法减少指定的字段的值
12            ldt.minusHours(1);   //Day字段的值-1
13        }
14 }

 

转载于:https://www.cnblogs.com/chy18883701161/p/10854516.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值