SimpleDateFormat 问题
Issue with SimpleDateFormat
我正在使用 SimpleDateFormat
处理日期格式。但是当我以提供的格式格式化我的日期时,年份值增加 1.The 条件会随着该值发生。为什么会这样?
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-YYYY");
System.out.println("dob - "+date); // Java date
System.out.println("formatted date - "+sdf.format(date));
输出如下:
dob - Sun Dec 28 00:00:00 IST 1975
formatted date - 28-12-1976
年份值增加 1。为什么会这样。
大写 Y 表示星期年,您应该使用 yyyy
代替 YYYY
将SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-YYYY");
改为
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
你应该使用 SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
因为 y
表示年而 'Y' 表示周年。
以下是在 SimpleDateFormat 中使用的支持代码。
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
尝试使用 "yyyy" 而不是 "YYYY"。
查看更多信息:
SimpleDateFormat producing wrong date time when parsing "YYYY-MM-dd HH:mm"
- Y 表示 "Week year"
- y 表示 "Calendar year"
我正在使用 SimpleDateFormat
处理日期格式。但是当我以提供的格式格式化我的日期时,年份值增加 1.The 条件会随着该值发生。为什么会这样?
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-YYYY");
System.out.println("dob - "+date); // Java date
System.out.println("formatted date - "+sdf.format(date));
输出如下:
dob - Sun Dec 28 00:00:00 IST 1975
formatted date - 28-12-1976
年份值增加 1。为什么会这样。
大写 Y 表示星期年,您应该使用 yyyy
代替 YYYY
将SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-YYYY");
改为
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
你应该使用 SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
因为 y
表示年而 'Y' 表示周年。
以下是在 SimpleDateFormat 中使用的支持代码。
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
尝试使用 "yyyy" 而不是 "YYYY"。
查看更多信息: SimpleDateFormat producing wrong date time when parsing "YYYY-MM-dd HH:mm"
- Y 表示 "Week year"
- y 表示 "Calendar year"