util.date 转sql.date
时间: 2024-10-24 20:07:34 浏览: 12
java.util.Date与java.sql.Date的区别
在Java中,`java.util.Date`是一个代表从1970年1月1日00:00:00 GMT(格林尼治标准时间)至今的毫秒数的对象,而`java.sql.Date`则是Oracle SQL数据库中的日期类型,通常表示的是从1970年1月1日到公元9999年的本地日期。
如果你有一个`java.util.Date`对象并且需要将其转换为`java.sql.Date`,你可以这样做:
```java
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Date;
public Date utilDateToSqlDate(Date utilDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = formatter.format(utilDate);
try {
return new Date(dateStr.length() <= 10 ? "19" + dateStr : dateStr); // Oracle SQL不接受四位数的年份,除非明确指定如"2000"
} catch (Exception e) {
throw new RuntimeException("Failed to convert Util Date to Sql Date", e);
}
}
```
这个方法首先将`utilDate`转换为字符串,然后创建一个新的`java.sql.Date`对象。注意,Oracle SQL不接受四位数的年份,因此我们在构造新的`Date`时会检查并添加前导的"19"。
阅读全文