月份不是从日期打印的 - Java DateFormat

2022-01-11 00:00:00 date calendar date-format java

如何从java中的日期获取月份:

How to get month from a date in java :

        DateFormat inputDF  = new SimpleDateFormat("mm/dd/yy");
        Date date1 = inputDF.parse("9/30/11");

        Calendar cal = Calendar.getInstance();
        cal.setTime(date1);

        int month = cal.get(Calendar.MONTH);
        int day = cal.get(Calendar.DAY_OF_MONTH);
        int year = cal.get(Calendar.YEAR);

        System.out.println(month+" - "+day+" - "+year);

此代码返回日期和年份,但不返回月份.

This code return day and year but not month.

输出:

0 - 30 - 2011

推荐答案

这是因为你的格式不正确:你需要"MM/dd/yy"这个月份,因为"mm" 是分钟:

This is because your format is incorrect: you need "MM/dd/yy" for the month, because "mm" is for minutes:

DateFormat inputDF  = new SimpleDateFormat("MM/dd/yy");
Date date1 = inputDF.parse("9/30/11");

Calendar cal = Calendar.getInstance();
cal.setTime(date1);

int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
int year = cal.get(Calendar.YEAR);

System.out.println(month+" - "+day+" - "+year);

打印 8 - 30 - 2011(因为月份是从零开始的;demo)

Prints 8 - 30 - 2011 (because months are zero-based; demo)

相关文章