从java.sql.date获取日月

Tar*_*nen 6 java

我的问题很简单,我SQL从java查询返回一个日期并将其分配给一个java.sql.Date变量.

但是我想把每天,每月和每年的每一天都当作int.看来,方法getDay(),getMonth()已被弃用.

有没有其他方法来实现这一目标?

我试过测试的是:

String date = "2015-04-12";
java.sql.Date dat = java.sql.Date.valueOf(date);
Run Code Online (Sandbox Code Playgroud)

现在我想要一个int变量的年,月和日.

kar*_*ala 10

您可以执行以下操作:

String date = "2015-04-12";
java.sql.Date dat = java.sql.Date.valueOf(date);
//create calander instance and get required params
Calendar cal = Calendar.getInstance();
cal.setTime(dat);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
int year = cal.get(Calendar.YEAR);
Run Code Online (Sandbox Code Playgroud)

  • @Tarounen 是的,月份是从 `Calendar` 中的 `0` 开始索引的,这使得 April `3`(它与 `Calendar.APRIL` 的值相同)。 (2认同)

Psh*_*emo 8

从java.sql.Date扩展开始,java.util.Date您可以使用其继承的toLocalDate()方法来获取LocalDate支持许多get...()方法的实例(自Java 8起可用)

String date = "2015-04-12";
java.sql.Date dat = java.sql.Date.valueOf(date);

LocalDate localDate = dat.toLocalDate();
System.out.println(localDate.getDayOfMonth());
System.out.println(localDate.getMonthValue());
System.out.println(localDate.getYear());
Run Code Online (Sandbox Code Playgroud)

输出:

12
4
2015
Run Code Online (Sandbox Code Playgroud)