Java:GregorianCalendar奇怪的输出

时间:2018-10-22 09:40:48

标签: java date java-date java.util.calendar

我是Java的新手,我正在尝试使用以下代码获取昨天的日期:

    GregorianCalendar gc = new GregorianCalendar(2018,9,22);//<-Today
    gc.add(gc.DATE, -1);//<-Yesterday
    SimpleDateFormat dateFormatter = new SimpleDateFormat("DD-MMM-YYYY");
    System.out.println(dateFormatter.format(gc.getTime()));

我得到的输出是:

  

325-XI-2018

我在做什么错了?

2 个答案:

答案 0 :(得分:1)

DD-MMM-YYYY表示:

  • DD:一年中的一天
  • MMM:一年中的月份(月份:如果模式字母的数目为3或更多,则将月份解释为文本;否则,将其解释为数字。)
  • YYYY:周年

如果要将日期显示为22-09-2018,请使用格式dd-MM-yyyy

请参阅https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

答案 1 :(得分:0)

DateTimeFormatter类具有许多显示日期和时间的不同方式。在https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html上查看Oracle文档,以获取更多信息和语法