
【Java】 # 对于日期Date类的相关操作
发布日期:2021-05-10 18:52:10
浏览次数:10
分类:精选文章
本文共 2302 字,大约阅读时间需要 7 分钟。
1. Date和String类型的转换
1.1 String 转 Date
使用 parse 方法,参数为 字符串String,需要进行异常处理
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Date date = sdf.parse("20210126");System.out.println(date);
1.2 Date 转 String
使用 format 方法,参数为 日期Date
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String time = sdf.format(new Date());System.out.println(time);
2. 对日期进行加减运算
利用 java.text包下的 SimpleDateFormat 类
import java.util.Date;import java.util.Calendar;import java.text.SimpleDateFormat;public class DateCalcUtil { public static void main(String[] args) throws Exception { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String str = "20210126"; Date date = sdf.parse(str); Calendar time = Calendar.getInstance(); time.setTime(date); //日期减1年 time.add(Calendar.YEAR, -1); //日期加3个月 time.add(Calendar.MONTH, 3); //日期加10天 time.add(Calendar.DAY_OF_YEAR, 10); Date resTime = time.getTime(); String resStr = sdf.format(resTime); System.out.println(reStr); }}
3. 比较两个字符串日期的大小
3.1 直接进行字符串的比较
要求两个日期格式一样
String beginTime = "2021-01-26 07:19:23";String endTime = "2021-01-26 17:19:29";if (beginTime.compareTo(endTime) < 0){ // 代表beginTime 小于 endTime //TODO}
3.2 将日期转换为长整型
过于繁琐,要求两个日期格式一样
String beginTime = "2021-01-26 07:19:23";String endTime = "2021-01-26 17:19:29";long begin = Long.valueOf(beginTime.replaceAll("-", "").replaceAll(":", "").replace(" ", ""));long end = Long.valueOf(endTime.replaceAll("-", "").replaceAll(":", "").replace(" ", ""));if (begin < end){ //TODO}
3.3 使用SimpleDateFormat转换
String beginTime = "2021-01-26 07:19:23";String endTime = "2021-01-26 17:19:29";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date bt = sdf.parse(beginTime); // 需处理异常Date et = sdf.parse(endTime); if (bt.before(et)){ // TODO}
注:如果是Date类型的日期,直接使用 before 和 after 比较即可
4. 日期转换可能会出现的异常 Cannot format given Object as a Date
错误信息:
Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Date at java.text.DateFormat.format(Unknown Source) at java.text.Format.format(Unknown Source) at .....QxtMessageUtils.main(QxtMessageUtils.java:210)
原因:parse 或者 format 参数传递错误
- parse 的作用是将 字符串 转换成 Date值
- format 的作用是将 Date值 转换成 字符串
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月24日 21时19分57秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
简易计算器案例
2021-05-10
在Vue中使用样式——使用内联样式
2021-05-10
@pathVariable 映射URL绑定的占位符
2021-05-10
案例:验证用户名是否可用
2021-05-10
基于组件的案例:购物车
2021-05-10
实现简易前端路由
2021-05-10
桥接模式
2021-05-10
springcloud 与springboot的依赖关系以及版本的选择
2021-05-10
application.yml如何显示成小叶子图标
2021-05-10
JVM的标配参数和X参数
2021-05-10
MySQL 高级 - 存储过程 - 函数
2021-05-10
Mysql的体系结构概览
2021-05-10
单链表的创建示意图, 显示单向链表的分析
2021-05-10
Explore Optimization
2021-05-10
js的知识点14
2021-05-10
MATLAB知识点1
2021-05-10
数据挖掘
2021-05-10
计算机系统多层次结构
2021-05-10
《区块链基础知识25讲》-第二十二讲-区块链的缺陷
2021-05-10