博客
关于我
API--02--Java.util.date与java.sql.date
阅读量:282 次
发布时间:2019-03-01

本文共 3606 字,大约阅读时间需要 12 分钟。

JDK8 之前日期时间 API

在 Java 开发中,日期时间处理是非常常见的操作。了解相关的 API 和类如何高效地处理日期时间是每个开发者的必备技能。本文将从基础的时间戳到复杂的日期时间处理进行详细讲解。

时间戳

时间戳是衡量时间的重要单位。System.currentTimeMillis() 是 Java 提供的一个获取当前时间的方法。它返回当前时间与 1970 年 1 月 1 日 00:00:00 的时间差,以毫秒为单位。

返回当前时间

public static void main(String[] args) {    long currentTimeMillis = System.currentTimeMillis();    System.out.println(currentTimeMillis);}

时间戳的应用

时间戳广泛应用于分布式系统、数据库存储以及网络协议中。因为它可以精确到毫秒,适用于需要高精度时间记录的场景。

java.util.Date 类

java.util.Date 是 Java 中最常用的日期时间类。它能够精确到毫秒,支持时间戳操作。

构造器

Date 类有两个关键的构造器:

  • Date():创建一个当前时间对应的 Date 对象。
  • Date(long millis):创建一个指定时间戳的 Date 对象。
  • 方法

    Date 类提供了两个重要的方法:

  • getTime():获取当前 Date 对象的时间戳。
  • toString():返回当前 Date 对象的字符串表示,格式为 "MM/dd/yyyy HH:mm:ss zzz"。
  • 示例代码

    @Testpublic void test2() {    // 构造器一:创建当前时间的 Date 对象    Date date1 = new Date();    System.out.println(date1.toString()); // Sat Feb 16 16:35:31 GMT+08:00 2019    System.out.println(date1.getTime()); // 1550306204104    // 构造器二:创建指定毫秒数的 Date 对象    Date date2 = new Date(155030620410L);    System.out.println(date2.toString());}

    默认格式

    Date.toString() 方法返回的字符串格式为:"MM/dd/yyyy HH:mm:ss zzz"。例如,日期 2019-02-16 16:35:31 GMT+08:00 的字符串表示为 "Sat Feb 16 16:35:31 GMT+08:00 2019"。

    java.sql.Date 类

    java.sql.Datejava.util.Date 的一个子类,专门用于处理与数据库相关的日期时间问题。它的主要用途是存储和传输数据库中的日期值。

    java.sql.Date 的特点

  • 精度:与 java.util.Date 一样,java.sql.Date 也可以精确到毫秒。
  • 时间格式java.sql.DatetoString() 方法返回的字符串格式为 "yyyy-MM-dd"。
  • 默认值java.sql.Date 对应的时间戳总是截断到 00:00:00,即数据库中的日期类型。
  • 与数据库的关系

    在 JDBC 中,java.sql.Date 是用来处理 SQL 语句中的日期类型。与 java.util.Date 不同,java.sql.Date 不包含时间信息,只存储年月日。

    java.sql包中的日期时间类型

    java.sql 包中提供了三个与日期时间相关的类:

  • Date:表示日期,只有年月日,不支持时间精度。
  • Time:表示时间,只有小时分钟秒,不支持日期精度。
  • Timestamp:表示时间戳,包含年月日小时分钟秒以及毫秒。
  • 示例代码

    @Testpublic void test03() {    // 创建 util.Date 对象    Date utilDate = new Date();    System.out.println("utilDate : " + utilDate);    // 将 utilDate 转换为 sql.Date    java.sql.Date sqldate = new java.sql.Date(utilDate.getTime());    System.out.println("sqldate : " + sqldate);    // 创建 Time 对象    Time sqltime = new Time(utilDate.getTime());    System.out.println("sqltime : " + sqltime);    // 创建 Timestamp 对象    Timestamp Timestamp = new Timestamp(utilDate.getTime());    System.out.println("Timestamp : " + Timestamp);}

    util.Date 与 sql.Date 的相互转换

    sql.Date 到 util.Date

    由于 java.sql.Datejava.util.Date 的子类,直接强转即可:

    Date date4 = new java.sql.Date(2343243242323L);java.sql.Date date5 = (java.sql.Date) date4;System.out.println(date4);System.out.println(date5);

    util.Date 到 sql.Date

    可以通过以下两种方式实现转换:

  • 强转:直接将 util.Date 强转为 sql.Date
  • 构造函数:使用 sql.Date 的构造函数,通过 util.Date 的时间戳来创建 sql.Date 对象。
  • @Testpublic void test04() {    // 将 util.Date 转换为 sql.Date    Date date6 = new Date();    java.sql.Date date7 = new java.sql.Date(date6.getTime());    System.out.println(date6);    System.out.println(date7);}

    格式化日期时间

    在 Java 中,SimpleDateFormat 是一个强大的日期格式化工具。可以通过它将 Date 对象格式化为任意指定的日期时间格式。

    @Testpublic void test05() {    Date utilDate = new Date();    System.out.println("utilDate : " + utilDate);    // 创建自定义日期格式    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    System.out.println("format utilDate : " + format.format(utilDate));    // 将 utilDate 转换为 sql.Date    java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());    System.out.println("sqlDate : " + sqlDate);    System.out.println("format sqlDate : " + format.format(sqlDate));    // 创建 Timestamp 对象    Timestamp Timestamp = new Timestamp(utilDate.getTime());    System.out.println("Timestamp : " + Timestamp);    System.out.println("format Timestamp : " + format.format(Timestamp));}

    通过以上内容,可以看出,java.util.Datejava.sql.Date 在日期时间处理中各有优势。选择合适的类,能够更高效地完成日期时间操作。

    转载地址:http://yxmo.baihongyu.com/

    你可能感兴趣的文章
    OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
    查看>>
    OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
    查看>>
    OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
    查看>>
    OAuth2.0_授权服务配置_令牌服务和令牌端点配置_Spring Security OAuth2.0认证授权---springcloud工作笔记143
    查看>>
    OAuth2.0_授权服务配置_客户端详情配置_Spring Security OAuth2.0认证授权---springcloud工作笔记142
    查看>>
    OAuth2.0_授权服务配置_密码模式及其他模式_Spring Security OAuth2.0认证授权---springcloud工作笔记145
    查看>>
    OAuth2.0_授权服务配置_资源服务测试_Spring Security OAuth2.0认证授权---springcloud工作笔记146
    查看>>
    OAuth2.0_环境介绍_授权服务和资源服务_Spring Security OAuth2.0认证授权---springcloud工作笔记138
    查看>>
    OAuth2.0_环境搭建_Spring Security OAuth2.0认证授权---springcloud工作笔记139
    查看>>
    oauth2.0协议介绍,核心概念和角色,工作流程,概念和用途
    查看>>
    OAuth2授权码模式详细流程(一)——站在OAuth2设计者的角度来理解code
    查看>>
    OAuth2:项目演示-模拟微信授权登录京东
    查看>>
    OA系统多少钱?OA办公系统中的价格选型
    查看>>
    OA系统选型:选择好的工作流引擎
    查看>>
    OA让企业业务流程管理科学有“据”
    查看>>
    OA项目之我的会议(会议排座&送审)
    查看>>
    OA项目之我的会议(查询)
    查看>>
    Object c将一个double值转换为时间格式
    查看>>
    object detection之Win10配置
    查看>>
    object detection训练自己数据
    查看>>