我正在使用Oracle java 1.7.0_45,看起来SimpleDateFormat.format方法返回2015年的年度组件而不是2014年。
以下是单元测试:
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("YYYYMMdd");
public static void main(String[] args) {
Date today = new Date();
System.out.println("OS: " + System.getProperty("os.name") + " " + System.getProperty("os.version"));
System.out.println("Java Vendor: " + System.getProperty("java.vendor"));
System.out.println("Java Version: " + System.getProperty("java.version"));
System.out.println("Today: " + today.toString() + " formatted: " + DATE_FORMAT.format(today));
}
}
以下是单元测试的输出: 操作系统:Mac OS X 10.10.1 Java供应商:Oracle Corporation Java版本:1.7.0_45 今天:2014年12月29日星期一09:43:00格式化:20151229
答案 0 :(得分:1)
请改为尝试:
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyyMMdd");
yyyy和YYYY是不同的,因为MM和mm都是。
答案 1 :(得分:1)
使用的模式 - yyyyMMdd
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyyMMdd");
public static void main(String[] args) {
Date today = new Date();
System.out.println("Java Vendor: " + System.getProperty("java.vendor"));
System.out.println("Java Version: " + System.getProperty("java.version"));
System.out.println("Today: " + today.toString() + " formatted: " + DATE_FORMAT.format(today));
}
}
<强>输出强>
Java Vendor: Sun Microsystems Inc.
Java Version: 1.6.0_31
Today: Mon Dec 29 20:21:17 IST 2014 formatted: 20141229
答案 2 :(得分:1)
请使用yyyyMMdd
。 YYYY
适用于week Year
(see javadoc),根据您的Locale
,有时可能会返回过去一年的第53周使用早期日期或第1周使用12月下旬的新年。