Java中日期和时间的处理

最近在做一个小项目的时候,涉及到了Java的日期和时间操作。简单记录一下。

1、Date

java.util.Date,Java中标准时间类库,获取当前的瞬时时间戳。

Date date = new Date();
System.out.println(date);

输出结果为:

Mon Apr 19 09:08:45 CST 2021

2、SimpleDateFormat

java.text.SimpleDateFormat,通常用于时间和字符串之间的互转。

Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(date);
System.out.println(str);

使用format()将一个Date转换为yyyy-MM-dd HH:mm:ss格式的字符串。

输出结果为:

2021-04-19 09:08:45

其中,yyyy代表4位年份(2021、2022),MM代表2位月份(01、02、...11、12),dd代表2位日期(01、02、...30、31),HH代表24进制小时,mm代表分,ss代表秒。

SimpleDateFormat同样可以将指定格式的字符串转化为一个Date,使用parse()。

String str = "2021-04-19 09:12:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(str);
System.out.println(date);

输出的结果为:

Mon Apr 19 09:12:00 CST 2021

3、Calendar

java.util.Calendar抽象类,日历。

3.1  Calendar可以完全替代Date类,获取当前的时间戳。

Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
System.out.println(date);

3.2  Calendar可以自由获取或设定年月、日、时、分、秒。而在Date类中这些函数都是过时的,不建议使用。

Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int date = calendar.get(Calendar.DATE);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);

System.out.println("年:" + year);
System.out.println("月:" + (month + 1));
System.out.println("日:" + date);
System.out.println("时:" + hour);
System.out.println("分:" + minute);
System.out.println("秒:" + second);

输出结果为:

年:2021
月:3
日:19
时:9
分:55
秒:12

代表当前的时间为2021年4月19日9时55分12秒。

注意!!!Calendar.Month将1月设置为0,12月设为11,所以在输出是需要+1,才是实际的月份。

3.3  Calendar设置年月日时分秒。

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, 2022);
calendar.set(Calendar.MONTH, 6);
calendar.set(Calendar.DATE, 1);
calendar.set(Calendar.HOUR_OF_DAY, 18);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 30);
Date date = calendar.getTime();
System.out.println(date);

输出结果为:

Fri Jul 01 18:30:30 CST 2022

将时间设置为2022年7月1日18时30分30秒。

注意!!!由于月份是从0开始,0代表1月,所以将Calendar.MONTH设置为6,代表设置为7月。

3.4  Calendar对日期进行加减运算。

将时间设置为2022年7月1日18时30分30秒后,直接对日期减一天。

calendar.add(Calendar.DATE, -1);        
Date date = calendar.getTime();
System.out.println(date);

输出结果为:

Thu Jun 30 18:30:30 CST 2022

输出结果为2022年6月30日18时30分30秒。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值