Issue with SimpleDateFormat

风格不统一 提交于 2019-12-13 08:58:26

问题


I am working on date format with SimpleDateFormat. But when I format my date in provide format, year value increment by 1.The condition happen with that value. Why this happen?

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-YYYY");
System.out.println("dob - "+date); // Java date
System.out.println("formatted date - "+sdf.format(date));

Output as follows :

dob - Sun Dec 28 00:00:00 IST 1975
formatted date - 28-12-1976

Year value increment by 1. Why this happen.


回答1:


As per Oracle docs

capital Y means week year,you should use yyyy in place of YYYY

change SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-YYYY"); to

SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");



回答2:


You should use SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); as y means year while 'Y' means week Year.

Below are supported codes to be used in 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



回答3:


Try to use "yyyy" instead of "YYYY".

See for more info: SimpleDateFormat producing wrong date time when parsing "YYYY-MM-dd HH:mm"

  • Y means "Week year"
  • y means "Calendar year"


来源:https://stackoverflow.com/questions/29895133/issue-with-simpledateformat

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!