从java.sql.date获取日月

时间:2015-04-11 22:46:57

标签: java

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

但是我希望将每天,每月和每年的每一天都视为int。似乎不推荐使用方法getDay()getMonth()

还有其他方法可以达到这个目的吗?

我尝试测试的是:

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

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

2 个答案:

答案 0 :(得分:8)

您可以执行以下操作:

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);

答案 1 :(得分: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());

输出:

12
4
2015