Java 中的 SimpleDateFormat 工作不正确还是我做错了什么?查看代码示例
Is SimpleDateFormat in Java work incorrect or I did any mistake? See code sample
我使用 Java 并使用 sdk 7 编译此代码。
控制台显示:
输入=2010/03/30
输出=2010/12/28
public static void main(String[] args) {
SimpleDateFormat format = new SimpleDateFormat("YYYY/MM/dd");
String inputDateStr = "2010/03/30";
try {
Date date = format.parse(inputDateStr);
String result = format.format(date);
System.out.println("input=" + inputDateStr);
System.out.println("output=" + result);
} catch (ParseException e) {
e.printStackTrace();
}
}
如link所示,YYYY给出了年的周数,明年的第一天可能是今年的周年,第52周。等等。 DD 是一年中的第几天,例如 350。
新的date/time类会更好用
至于文档https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
大写 D
代表 year
中的天数,如果你想要 month
中的天数,你应该使用小写 d
.
YYYY
和 yyyy
相同:
Letter Date or Time Component Presentation Examples
G Era designator Text AD
y Year Year 1996; 96
Y Week year Year 2009; 09
M Month in year Month July; Jul; 07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day name in week Text Tuesday; Tue
u Day number of week (1 = Monday, ..., 7 = Sunday) Number 1
a Am/pm marker Text PM
H Hour in day (0-23) Number 0
k Hour in day (1-24) Number 24
K Hour in am/pm (0-11) Number 0
h Hour in am/pm (1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone RFC 822 time zone -0800
X Time zone ISO 8601 time zone -08; -0800; -08:00
我使用 Java 并使用 sdk 7 编译此代码。 控制台显示:
输入=2010/03/30
输出=2010/12/28
public static void main(String[] args) {
SimpleDateFormat format = new SimpleDateFormat("YYYY/MM/dd");
String inputDateStr = "2010/03/30";
try {
Date date = format.parse(inputDateStr);
String result = format.format(date);
System.out.println("input=" + inputDateStr);
System.out.println("output=" + result);
} catch (ParseException e) {
e.printStackTrace();
}
}
如link所示,YYYY给出了年的周数,明年的第一天可能是今年的周年,第52周。等等。 DD 是一年中的第几天,例如 350。
新的date/time类会更好用
至于文档https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
大写 D
代表 year
中的天数,如果你想要 month
中的天数,你应该使用小写 d
.
YYYY
和 yyyy
相同:
Letter Date or Time Component Presentation Examples
G Era designator Text AD
y Year Year 1996; 96
Y Week year Year 2009; 09
M Month in year Month July; Jul; 07
w Week in year Number 27
W Week in month Number 2
D Day in year Number 189
d Day in month Number 10
F Day of week in month Number 2
E Day name in week Text Tuesday; Tue
u Day number of week (1 = Monday, ..., 7 = Sunday) Number 1
a Am/pm marker Text PM
H Hour in day (0-23) Number 0
k Hour in day (1-24) Number 24
K Hour in am/pm (0-11) Number 0
h Hour in am/pm (1-12) Number 12
m Minute in hour Number 30
s Second in minute Number 55
S Millisecond Number 978
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00
Z Time zone RFC 822 time zone -0800
X Time zone ISO 8601 time zone -08; -0800; -08:00