昨天看到论坛上有人发帖说是时间不对了,一个大bug,哈哈,下面我们来说下为什么吧。
Google了之后才发现是在格式化的时候由 YYYY 导致引起的,改回 yyyy 就好了。具体区别:
所以,YYYY 是以周为单位计算的,平常计算日期时最好用yyyy,yyyy才是标注的年份。
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
// 2014-12-26
calendar.set(2010, Calendar.DECEMBER, 26);
Date strDate1 = calendar.getTime();
SimpleDateFormat f1 = new SimpleDateFormat("YYYY-MM-dd");
System.out.println("Result for YYYY: " + f1.format(strDate1));
SimpleDateFormat f2 = new SimpleDateFormat("yyyy-MM-dd");
System.out.println("Result for yyyy: " + f2.format(strDate1));
}
运行结果:
Result for YYYY: 2011-12-26
Result for yyyy: 2010-12-26
这个结果是在jdk的1.7版本的试验结果,其余版本什么结果不清楚。
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
喜欢 就关注吧,欢迎投稿!