SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String date = sdf.format(new Date());
System.out.println(date);
Result is todays date i.e 23/03/2014
But when i do
SimpleDateFormat sdf = new SimpleDateFormat("dd/mm/yyyy");
result can be 23/05/2014, 23/05/2014, 23/06/2014 and son with each run of prgram. Why so?
As we can see from the documentation, it's because mm
is for minutes, not months.
1. d/D: day without 0 prefix on single digit.
2. dd/DD: day with 0 prefix if single digit.
3. M: Month without 0 prefix on single digit.
4. MM: Month with 0 prefix if single digit.
5. yy/YY: Last two digit of year.
6. yyyy/YYYY: represents full year.
7. HH: 24 hour based hour. ie. 13:00. **H** will display hour without prefix 0 if single digit
8. hh: 12 hour based hour. ie. 01:00. **h** will display hour without prefix 0 if single digit
9. m: minute without 0 prefix on single digit.
10.mm: minute with 0 prefix if single digit.
11.s: second without 0 prefix on single digit.
12.ss: second with 0 prefix if single digit.
13.tt: represent the AM or PM
mm
represents minutes, so when you use mm
, it will print minutes instead of month.
While MM
represents months.
Read more about Time Patterns
来源:https://stackoverflow.com/questions/22590381/dd-mm-yyyy-vs-dd-mm-yyyy