util.date和sql.date区别
时间: 2023-05-04 21:01:48 浏览: 76
b'util.date'和'sql.date'是两种不同的数据类型。b'util.date'是Python标准库中的模块,用于表示日期和时间,而'sql.date'是SQL语言中的日期类型,用于在数据库中存储日期。它们之间的主要区别在于表示方式和使用方式不同。
相关问题
util.date 转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"。
package DiLiuZhang; import java.sql.Date; import java.util.Date; public class Circle { public static void main(String[] args) { java.sql.Date date=new java.sql.Date(); java.util.Date date1=new java.util.Date(); } }
这段代码存在一个错误,编译会报错。
原因是在该代码中同时导入了 `java.sql.Date` 和 `java.util.Date`,两者名称相同,会发生冲突。需要对其中一个进行重命名,或者使用全限定名来避免冲突。
以下是修改后的代码:
```java
package DiLiuZhang;
import java.sql.Date;
import java.util.Date as UtilDate;
public class Circle {
public static void main(String[] args) {
Date sqlDate = new Date(System.currentTimeMillis());
UtilDate utilDate = new UtilDate();
}
}
```
通过为 `java.util.Date` 起一个别名 `UtilDate`,可以避免与 `java.sql.Date` 发生冲突。同时,为了区分使用的是哪个类,还需要使用全限定名来创建对象。
阅读全文