我的编程空间,编程开发者的网络收藏夹
学习永远不晚

java.sql.Date和java.util.Date的区别有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

java.sql.Date和java.util.Date的区别有哪些

这篇文章主要介绍“java.sql.Date和java.util.Date的区别有哪些”,在日常操作中,相信很多人在java.sql.Date和java.util.Date的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java.sql.Date和java.util.Date的区别有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

参考答案

  • java.sql.Date 是 java.util.Date 的子类

  • java.util.Date 是 JDK 中的日期类,精确到时、分、秒、毫秒

  • java.sql.Date 与数据库 Date 相对应的一个类型,只有日期部分,时分秒都会设置为 0,如:2019-10-23 00:00:00

  • 要从数据库时间字段取 时、分、秒、毫秒数据,可以使用 java.sql.Timestamp

JDK1.8 中的日期与时间 API

为什么 JDK 1.8 之前的时间与日期 API 不好用?

java.util.Date 是从 JDK 1.0 开始提供,易用性差

  • 默认是中欧时区(Central Europe Time)

  • 起始年份是 1900 年

  • 起始月份从 0 开始

  • 对象创建之后可修改

JDK 1.1 废弃了 Date 中很多方法,新增了并建议使用 java.util.Calendar 类

  • 相比 Date 去掉了年份从 1900 年开始

  • 月份依然从 0 开始

  • 选用 Date 或 Calendar,让人更困扰

DateFormat 格式化时间,线程不安全

为了解决 JDK 中时间与日期较难使用的问题,JDK 1.8 开始,吸收了 Joda-Time 很多功能,新增 java.time 包,加了新特性

  • 区分适合人阅读的和适合机器计算的时间与日期类

  • 日期、时间及对比相关的对象创建完均不可修改

  • 可并发解析与格式化日期与时间

  • 支持设置不同的时区与历法

LocalDate本地日期
LocalTime本地时间
LocalDateTime本地日期+时间
Instant时间戳,适合机器时间计算
Duration时间差
Period年、月、日差
ZoneOffset时区偏移量
ZonedDateTime带时区的日期时间
Clock时钟,获取其他地区时钟
DateTimeFormatter时间格式化
Temporal日期-时间获取值的字段
TemporalAdjusteremporal 对象转换,实现自定义
ChronoLocalDate日历系统接口

常用 api

 获取当前日期

LocalDate.now()

创建日期

LocalDate date = LocalDate.of(2020, 9, 21)

获取年份

date.getYear() //通过 TemporalField 接口的实现枚举类 ChronoField.YEAR 获取年份date.get(ChronoField.YEAR)

获取月份

date.getMonth().getValue() //通过 TemporalField 接口的实现枚举类 ChronoField.MONTH_OF_YEAR 获取月份date.get(ChronoField.MONTH_OF_YEAR)

获取日

date.getDayOfMonth() //通过 TemporalField 接口的实现枚举类 ChronoField.DAY_OF_MONTH 获取日date.get(ChronoField.DAY_OF_MONTH)

获取周几

date.getDayOfWeek()

获取当前月多少天

date.lengthOfMonth()

获取当前年是否为闰年

date.isLeapYear()

当前时间

LocalTime nowTime = LocalTime.now()

创建时间

LocalTime.of(23, 59, 59)

获取时

nowTime.getHour()

获取分

nowTime.getMinute()

获取秒

nowTime.getSecond()

获取毫秒

nowTime.getLong(ChronoField.MILLI_OF_SECOND)

获取纳秒

nowTime.getNano()

创建日期时间对象

LocalDateTime.of(2020, 9, 21, 1, 2, 3);LocalDateTime.of(date, nowTime);

获取当前日期时间对象

LocalDateTime.now()

通过 LocalDate 创建日期时间对象

date.atTime(1, 2, 3)

通过 LocalTime 创建日期时间对象

nowTime.atDate(date)

通过 LocalDateTime 获取 LocalDate 对象

LocalDateTime.now().toLocalDate()

通过 LocalDateTime 获取 LocalTime 对象

LocalDateTime.now().toLocalTime()

解析日期字符串

LocalDate.parse("2020-09-21")

解析时间字符串

LocalTime.parse("01:02:03")

解析日期时间字符串

LocalDateTime.parse("2020-09-21T01:02:03", DateTimeFormatter.ISO_LOCAL_DATE_TIME)

方便时间建模、机器处理的时间处理类 Instant,起始时间 1970-01-01 00:00:00

//起始时间 + 3 秒Instant.ofEpochSecond(3)//起始时间 + 3 秒 + 100 万纳秒Instant.ofEpochSecond(3, 1_000_000_000)//起始时间 + 3 秒 - 100 万纳秒Instant.ofEpochSecond(3, -1_000_000_000))//距离 1970-01-01 00:00:00 毫秒数Instant.now().toEpochMilli()

Duration:LocalTime、LocalDateTime、Intant 的时间差处理

Duration.between(LocalTime.parse("01:02:03"), LocalTime.parse("02:03:04"))Duration.between(LocalDateTime.parse("2020-09-21T01:02:03"), LocalDateTime.parse("2020-09-22T02:03:04"))Duration.between(Instant.ofEpochMilli(1600623455080L), Instant.now())

日期时间,前、后、相等比较

//2020-09-21 在 2020-09-18 前?LocalDate.parse("2020-09-21").isBefore(LocalDate.parse("2020-09-18"))//01:02:03 在 02:03:04 后?LocalTime.parse("01:02:03").isAfter(LocalTime.parse("02:03:04"))

修改日期、时间对象,返回副本

//修改日期返回副本LocalDate.now().withYear(2019).withMonth(9).withDayOfMonth(9)LocalDate date4Cal = LocalDate.now();//加一周date4Cal.plusWeeks(1)//减两个月date4Cal.minusMonths(2)//减三年date4Cal.minusYears(3)

格式化

//格式化当前日期LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE)//指定格式,格式化当前日期LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"))指定格式,格式化当前日期时间//格式化当前日期时间LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd  HH:mm:ss"))

解析

//日期解析LocalDate.parse("2020-09-20")//指定格式,日期解析LocalDate.parse("2020/09/20", DateTimeFormatter.ofPattern("yyyy/MM/dd"))//指定格式,日期时间解析LocalDateTime.parse("2020/09/20 01:01:03", DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"))

时区

//上海时区ZoneId shanghaiZone = ZoneId.of("Asia/Shanghai");//设置日期为上海时区LocalDate.now().atStartOfDay(shanghaiZone)//设置日期时间为上海时区LocalDateTime.now().atZone(shanghaiZone)//设置 Instant 为上海时区Instant.now().atZone(shanghaiZone)

子午线时间差

//时间差减 1 小时ZoneOffset offset = ZoneOffset.of("-01:00");//设置时间差OffsetDateTime.of(LocalDateTime.now(), offset)

到此,关于“java.sql.Date和java.util.Date的区别有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

java.sql.Date和java.util.Date的区别有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

java.sql.Date和java.util.Date的区别有哪些

这篇文章主要介绍“java.sql.Date和java.util.Date的区别有哪些”,在日常操作中,相信很多人在java.sql.Date和java.util.Date的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作
2023-07-05

php=== 和==的区别有哪些

这篇文章主要介绍“php === 和==的区别有哪些”,在日常操作中,相信很多人在php === 和==的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php === 和==的区别有哪些”的疑惑有所
2023-06-25

c#和java的区别有哪些

Java和C#都是编程的语言,它们是两个不同方向的两种语言。相同点:他们都是面向对象的语言,也就是说,它们都能实现面向对象的思想(封装、继承、多态)。区别:1.c#中的命名空间是namespace类似于Java中的package(包),在Java中导入包用im
c#和java的区别有哪些
2021-05-04

c11和dtp的区别有哪些

小编给大家分享一下c11和dtp的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!区别:c11屏幕是由日本东芝公司生成的手机屏幕,而dtp屏幕是由韩国LG公司生成的手机屏幕。c11屏幕的可替换性好,而dtp屏幕的可
2023-06-08

php5.4和5.6的区别有哪些

这篇文章主要介绍了php5.4和5.6的区别有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php5.4和5.6的区别有哪些文章都会有所收获,下面我们一起来看看吧。PHP5.4和5.6的区别是:1、5.6版
2023-07-02

gpgpu和gpu的区别有哪些

这篇文章主要介绍“gpgpu和gpu的区别有哪些”,在日常操作中,相信很多人在gpgpu和gpu的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”gpgpu和gpu的区别有哪些”的疑惑有所帮助!接下来
2023-02-02

wms和tms的区别有哪些

小编给大家分享一下wms和tms的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!区别:WMS是指仓库管理系统,是通过入库业务、出库业务、仓库调拨、库存调拨和虚仓管理等功能,对批次管理、物料对应、库存盘点、质检管理
2023-06-09

@TableName和@Table的区别有哪些

这篇文章主要介绍“@TableName和@Table的区别有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“@TableName和@Table的区别有哪些”文章能帮助大家解决问题。@TableNa
2023-06-26

FreeBSD和Linux的区别有哪些

小编给大家分享一下FreeBSD和Linux的区别有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!FreeBSD描述历史FreeBSD的***个版本发布于19
2023-06-16

php4和php5的区别有哪些

这篇文章主要介绍“php4和php5的区别有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php4和php5的区别有哪些”文章能帮助大家解决问题。php4和php5的区别:1、php4中没有析构
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录