不常用,只有项目用到才能记住,过了只有就又忘了,有必要记录一下。
格式
mysql中的时间格式跟java不一样,容易搞混。
- java用的叠词,mysql用的%
- java用的
SimpleDateFormat - mysql用的
date_format
| 时间 | java | mysql |
|---|---|---|
| 年 | yyyy | %Y(4位) 或 %y(2位) |
| 月 | MM | %m(%M是月名) |
| 日 | dd | %d |
| 时 | HH或hh | %H或%h |
| 分 | mm | %i |
| 秒 | ss | %s同%S |
在java里,M表示月,m表示分,记住“大美眉小弟弟” 保你永生不忘。
SimpleDateFormat
这个方法创建时传入时间格式参数
SimpleDateFormat spf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
然后就是两个方法,parse 和 format
- 解析成日期
- 格式化成字符串
Calendar
java中的时间方法,用来代替Date,可以导入更少的包,获得更多的时间信息。但是说实话还是不怎么行,可能国内外的日期使用习惯不一样吧。
Calendar ca = Calendar.getInstance();
不设置时间,默认当前时间,使用就像是翻日历一样。如果需要设置时间
- 一个个设置
ca.set(Calendar.YEAR, 2022); // 设置年份
ca.set(Calendar.MONTH, 8); // 设置月份
ca.set(Calendar.DAY, 20); // 设置日期
- 觉得太麻烦,就直接设置
ca.setTime(Date date);
这里的参数是 Date 格式,如果用的字符串,就需要 SimpleDateFormat 先转成 Date。
- 增减 调用 add 方法
ca.add(Calendar.DATE, 5);
- 时间差
先转时间戳,再计算转成对应时间间隔单位。或者使用jdk8的
LocalDateTime,使用 Duration 工具。
hutool
第三包,封装了很多方法。