从年,月,日创建java日期对象

2022-08-31 08:59:11
int day = Integer.parseInt(request.getParameter("day"));  // 25
int month = Integer.parseInt(request.getParameter("month")); // 12
int year = Integer.parseInt(request.getParameter("year")); // 1988

System.out.println(year);

Calendar c = Calendar.getInstance();
c.set(year, month, day, 0, 0);  

b.setDob(c.getTime());

System.out.println(b.getDob());  

输出为:

1988
年 1 月 25 日星期三 00:00:08 IST 1989

我正在通过,但我得到.为什么?25 12 198825 Jan 1989


答案 1

日历中的月份从零开始。所以12被解释为12月+ 1个月。用

c.set(year, month - 1, day, 0, 0);  

答案 2

这是我在Java 8之前最喜欢的方式:

Date date = new GregorianCalendar(year, month - 1, day).getTime();

我会说这比:

calendar.set(year, month - 1, day, 0, 0);