java.sql.Date和java.util.Date区别及使用

两个Date类型之间的联系

java.sql.Date继承自 java.util.Date,是对util.Date的一个简化,用于数据库使用,只包含年月日,不包含时分秒。

java.sql.Date

构造方法:

  1. @param year the year minus 1900; must be 0 to 8099. (Note that
    8099 is 9999 minus 1900.)
    @param month 0 to 11
    @param day 1 to 31
    public Date(int year, int month, int day) {
    super(year, month, day);
    };
    year 参数值为:当前年—1900 的差值
    month 参数值: 范围 0—11 ,所以构造值为当前月 —1
  2. public Date(long date) {
    // If the millisecond date value contains time info, mask it out.
    super(date);
    }
    如果long date值包含时分秒,会被忽略。日期中只包含年月日。

类方法解析

1.public void setTime(long date) {
// If the millisecond date value contains time info, mask it out.
super.setTime(date);
}
设置新的年月日, 如果long date值包含时分秒,会被忽略。

2.public static Date valueOf(String s) {}
将日期格式的string转换成Date类型
String格式仅支持yyyy-MM-dd以-号分隔的字符串。
3. public String toString () {}
@return a String in yyyy-mm-dd format
4.public static Date valueOf(LocalDate date) {
return new Date(date.getYear() - 1900, date.getMonthValue() -1,
date.getDayOfMonth());
}
根据localDate中的时分秒创建sql.date对象.
jdk1.8新增类 java.time.LocalDate 新的日期处理类,提供对日期的相关操作方法,类是final声明的有利于线程安全,也只包含年月日。 时分秒操作则是 java.time.localtimestamp
5.public LocalDate toLocalDate() {
return LocalDate.of(getYear() + 1900, getMonth() + 1, getDate());
}
转换成localDate对象,底层调用localDate构造方法 会校验日期是否正确

总结

java.sql.Date 用于数据库使用只有年月日,数据库操作需要使用时分秒则使用java.sql.timestamp
java.util.Date 用于程序内部运行使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值