使用SimpleDateFormat格式化时发现显示年份比实际年份多一年,这是因为yyyy和YYYY格式化时表示的含义是不同的,yyyy表示实际年份,YYYY表示Week year,Week year意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,那么这周就算入下一年。
代码如下:
import java.text.SimpleDateFormat; import java.util.Date; public class Main { public static void main(String[] args) { String pattern1 = "yyyy-MM-dd"; String pattern2 = "YYYY-MM-dd"; Date date = new Date(119,11,30); //2019.12.30 SimpleDateFormat sdf1 = new SimpleDateFormat(pattern1); SimpleDateFormat sdf2 = new SimpleDateFormat(pattern2); String date1 = sdf1.format(date); String date2 = sdf2.format(date); System.out.println("date1:"+pattern1+"\t"+date1); System.out.println("date2:"+pattern2+"\t"+date2); } }
结果:
觉得这个YYYY似乎没什么用,只有坑。。。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步