dd / mm / yyyy vs dd / MM / yyyy?

时间:2014-03-23 11:40:26

标签: java date-format

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        String date = sdf.format(new Date()); 
        System.out.println(date); 

结果是今天的日期,即2014年3月23日

但是当我做的时候

 SimpleDateFormat sdf = new SimpleDateFormat("dd/mm/yyyy"); 

结果可以是2014年5月23日,2014年5月23日,2014年6月23日和儿子每次运行prgram。为什么这样?

4 个答案:

答案 0 :(得分:35)

我们可以从the documentation看到,因为mm是分钟,而不是几个月。

答案 1 :(得分:23)

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

答案 2 :(得分:4)

mm表示分钟,因此当您使用mm时,它会打印分钟而不是月份。

虽然MM代表几个月。

详细了解Time Patterns

答案 3 :(得分:1)

是的,因为mm代表minutes

 Date date=new Date();
    System.out.println(date);
    System.out.println("Date: "+new SimpleDateFormat("dd/MM/yyyy").format(date));
    System.out.println("Date: "+new SimpleDateFormat("dd/mm/yyyy").format(date));

如果您观察到输出,则在打印日期对象时会发现,有分钟,月份等值,并且在第二行和第三行中分别打印了对应于mm的分钟,并打印了月份值 对应于MM

Thu Feb 20 14:33:00 IST 2020
20/02/2020
20/33/2020