日期计算方法中的Java日期转换问题
我曾尝试用Java创建一个方法,它将获取当前日期或存储的日期,并在之前或之后获取x天
//28 days ago
java.util.Date thresholdPast28Date = BasicUtils.setTimeInDays(sqlTodayDate, -28);
//56 days ago
java.util.Date thresholdPast56Date = BasicUtils.setTimeInDays(sqlTodayDate, -56);
函数如下所示
public static Date setTimeInDays(Date startingTime, Integer days){
Calendar c = Calendar.getInstance();
c.setTime(startingTime);
c.add(Calendar.DATE, days);//a day in the future or past
return c.getTime();
}
虽然我试图把今天的日期推到这个方法中,但还是会出错
java.util.Date cannot be cast to java.sql.Date
--今天就这样约会
//today date
Calendar today = Calendar.getInstance();
Date sqlTodayDate = (Date) today.getTime();
# 1 楼答案
这里的问题是,您试图在这一行中将
java.util.Date
转换为java.sql.Date
java.sql.Date sqlTodayDate = (java.sql.Date) today.getTime();
你应该简单地使用
java.util.Date sqlTodayDate = today.getTime();
最终的工作代码如下:
注意:
Calendar.getInstance()
将需要一些时间来执行。 你可以直接使用java.util.Date sqlTodayDate = new java.util.Date()
如果你坚持使用
java.sql.Date
,以下内容对你有用