[英]Creating java date object from year,month,day
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年
1989 年 1 月 25 日星期三 00:00:08 IST
我正在通過25 12 1988
但我得到25 Jan 1989
。 為什么?
月份在日歷中從零開始。 所以 12 被解釋為 12 月 + 1 個月。 利用
c.set(year, month - 1, day, 0, 0);
這是我在 Java 8 之前最喜歡的方式:
Date date = new GregorianCalendar(year, month - 1, day).getTime();
我會說這比:
calendar.set(year, month - 1, day, 0, 0);
使用 Java 8 中內置的java.time
框架
int year = 2015;
int month = 12;
int day = 22;
LocalDate.of(year, month, day); //2015-12-22
LocalDate.parse("2015-12-22"); //2015-12-22
//with custom formatter
DateTimeFormatter.ofPattern formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
LocalDate.parse("22-12-2015", formatter); //2015-12-22
如果您還需要有關時間(小時、分鍾、秒)的信息,請使用從LocalDate
到LocalDateTime
的一些轉換
LocalDate.parse("2015-12-22").atStartOfDay() //2015-12-22T00:00
使用日期、時間戳和持續時間讓您的生活更輕松。 使用 HalDateTime 從
http://sourceforge.net/projects/haldatetime/?source=directory
例如,您可以使用它來解析您的輸入,如下所示:
HalDateTime mydate = HalDateTime.valueOf( "25.12.1988" );
System.out.println( mydate ); // will print in ISO format: 1988-12-25
您還可以指定用於解析和打印的模式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.