帮助Java日历 - 它提供了一些奇怪的输出

Ale*_*sky 2 java

我是Java的新手,我正在尝试用日期来做事.首先我开始使用Date类,我发现它基本上已被弃用,所以我切换到了Calendar.

现在我得到了奇怪的价值观.例如,12月的月值是0,而不是12.而在那些给我0月12日的日历上,它也提前了一年.

有点奇怪!

我错过了什么?

谢谢你的帮助.

-GG

编辑示例:

所以我正在从这样的文件中读出一些线条:Johnny Graham HF 12-2-1973 Black

我解析它,然后为我设置的日历:

int year = Integer.parseInt(stringVersionOfYear); // this value is 1973
Run Code Online (Sandbox Code Playgroud)

后来当我用这样一条线去回去年份时:

calendar.get(Calendar.YEAR)
Run Code Online (Sandbox Code Playgroud)

价值是1974年...而月份是0 cal.get(Calendar.MONTH)

编辑2:

我正在创建这样的日历:

Calendar outputCalendar = Calendar.getInstance();
outputCalendar.set(year, month, day);
Run Code Online (Sandbox Code Playgroud)

Jim*_*ans 5

java.util.Date和Calendar类的设计很差(例如,一个月的第一天是第1天,但是一年中的第一个月是第0个月).许多项目使用Joda Time包.