在Java中我们经常使用日期进行转换,例如:
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
public static void main(String[] args) {
Date currentDate = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");
System.out.println("current date -> " + simpleDateFormat.format(currentDate));
}
}
运行结果:

注意了,我们有去深入理解过日期格式:yyyy-MM-dd HH:MM:ss吗?相信很多人都没有去深入了解过,本文来讲讲。
一般,以上是标准的24小时的日期格式(yyyy-MM-dd HH:MM:ss)我们都是复制过来的,其实它的大小写会严重影响运行结果,例如,把它全部改为小写,代码如下:
public class Test {
public static void main(String[] args) {
Date currentDate = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");
System.out.println("current date -> " + simpleDateFormat.format(currentDate));
}
}
运行结果:

这就很神奇了,跟开头说的结果不一样了,为什么呢?
常用格式:yyyy-MM-dd HH:mm:ss
| 字母 | 含义 | 写法 | 举例 |
|---|---|---|---|
| y | 年 | yyyy | 2022 |
| Y | Week Year,表示当天周所在的年份 | YYYY | 2022 |
| M | 月 | MM | 09 |
| d | 一月中的天数 | dd | 31 |
| D | 一年中天数 | DD | 365 |
| h | 12小时制 | hh | 写法:yyyy => 2022 |
| H | 24小时制 | 写法:HH =>18 | 写法:yyyy => 2022 |
| m | 分 | 写法:mm =>07 | 写法:yyyy => 2022 |
| s | 秒 | 写法:ss => 59 | 写法:yyyy => 2022 |
| S | 毫秒 | 写法:SSS=> 666 | 写法:yyyy => 2022 |
java中的的日期格式为:
注意这里和Oracle的日期格式还是有区别的,区别点在于Oracle不是以大小写作区分的,示例如下:
本文主要讲的是Java日期格式的一些问题,虽然是很基础的问题,但是希望能帮助到大家,谢谢大家的阅读。