java时间格式化中的y和Y
java常见的时间格式化方法也就那几种。每一个字母都代表特定的含义。但是有时候也会遇到,很多不长眼的“坑”。
在Java中,我们大多数情况下格式日期都是用的SimpleDateFormat,比如说把一个日期格式成java#"yyyy-MM-dd"
的形式。
我们要注意的是,对于年份来说,大写的Y和小写的y其意义是不同的。
yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)。
K:和hh差不多,表示一天12小时制(0-11)。
z:表示时区
但素,就是有的哥们写代码的时候不睁眼,活生生的小写给变成大写。那么意思就完全不一样了。
DateTimeFormatter dft = DateTimeFormatter.ofPattern("yyyyMMdd");
String dateStr = "20310101";
LocalDate date1 = LocalDate.parse(dateStr.trim(),dft);
LocalDate date = date1.plusYears(5);
System.out.println("-------"+date);
DateTimeFormatter dateformatter = DateTimeFormatter.ofPattern("yyyy.MM.dd");
System.out.println("yyyy---"+dateformatter.format(date));
DateTimeFormatter dateformatter1 = DateTimeFormatter.ofPattern("YYYY.MM.dd");
System.out.println("YYYY"+dateformatter1.format(date));
运行的结果为:
yyyy--2035.12.31
YYYY2036.12.31
而且