年底了,做了不少对账和数据统计的业务,用到了不少date format的函数,也踩了一些坑
在使用
String formatDate = DateUtils.format("2020-12-28", "YYYYMMdd") 时,发现返回了20211228,导致了有一些计算出现了异常,在查了DateFormatPattern 官方解释后发现:
YYYY 表示 week based year,表示当天所周所在的年份,每周以周日开始,周六结束
yyyy 表示 day based year , 表示当天所在的年份,
以2020年为例,跨年这周是2020-12.27(周日)~ 2021-01-04(周六),所以YYYY格式化 2020-12-27~2020-12-31,都会被标记成2021的年份,从而导致以上的问题。