【Java】常见的日期处理案例之Calendar、LocalDateTime与LocalDate

文章介绍了在Java中如何使用Calendar进行日期加减操作,以及获取当前时间的小时和上午下午状态。同时提到了SimpleDateFormat的线程安全问题,并展示了LocalDateTime、LocalDate与String之间的转换方法,强调了Java8日期API的推荐使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、近期在项目中经常使用到日期加减N天的操作,于是通过Calendar来处理的这个问题。

Date date = new Date();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.DAY_OF_MONTH, 1);
System.out.println(cal.getTime());
cal.add(Calendar.DAY_OF_MONTH, 1);
System.out.println(cal.getTime());
//案例:http://m.docexcel.net/show/24_70354.html#title1

2、Calendar实测

Calendar rightNow = Calendar.getInstance();
int year = rightNow.get(Calendar.YEAR);
int month = rightNow.get(Calendar.MONTH);
int date = rightNow.get(Calendar.DATE);
int hour=rightNow.get(Calendar.HOUR_OF_DAY);
//获取上午下午
int moa=rightNow.get(Calendar.AM_PM);
if(moa==1){
  System.out.println("当前是下午");
}else{
  System.out.println("当前是上午");
}
System.out.println(year + "年" + (month + 1) + "月" + date + "日"+hour+"时");

//add方法
rightNow.add(Calendar.YEAR,5);
rightNow.add(Calendar.DATE, -10);
int year1 = rightNow.get(Calendar.YEAR);
int date1 = rightNow.get(Calendar.DATE);
System.out.println(year1 + "年" + (month + 1) + "月" + date1 + "日"+hour+"时");

3、SimpleDateFormat 的线性安全问题
在这里插入图片描述
程序员必备:Java日期处理的十个坑
https://mp.weixin.qq.com/s/-K3nZqQYQESJysfLBbxdlA

4、LocalDateTime、LocalDate、Date、String相互转化

//LocalDate转String
String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
System.out.println("当前字符串日期:" + dateStr);

//String转LocalDate
LocalDate date = LocalDate.parse(dateStr);
System.out.println("日期对象:" + date); 

//LocalDateTime转String
String dateTimeStr = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println("当前字符串日期时间:" + dateTimeStr);

//String转LocalDateTime
LocalDateTime dateTime = LocalDateTime.parse(dateTimeStr, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println("当前日期时间对象:" + dateTime);

//除了上述与String类型的转化,与Date类型之间的转化也是很常见

LocalDateTime、LocalDate、Date、String相互转化大全及其注意事项
https://mp.weixin.qq.com/s/QFRc9P1ABF-FqV6TgT5cgA

死磕18个Java8日期处理,工作必用
https://mp.weixin.qq.com/s/6hqO9joqGk_y8Z5tZkBDPg

为什么建议使用你 LocalDateTime ,而不是 Date?
https://mp.weixin.qq.com/s/eFvh3wc58N4m-RQn9lvRLQ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值