JavaSE之时间类

Date : Date类型的时间(JDK8之前)

  • Date : 日期 -> java.util.Date

  • Date 类型的时间 -> 中间轴类;
    类 Date 表示特定的瞬间,精确到毫秒。

  • 构造方法:
    Date() : 创建一个Date对象,并指向创建对象时的瞬间;
    Date(long date) : 创建一个Date对象
    1. 先把时间归零
    2. 再加上传入的时间毫秒值定格的瞬间

  • 成员方法:
    long getTime() : 获取时间信息
    获取调用此方法Date对象指向的时间瞬间距离时间原点过了多少毫秒!
    void setTime(long millis) :设置时间信息
    1. 先把时间归零
    2. 再加上传入的时间毫秒值定格的瞬间

  • 时间类型的转换:
    Date --> long 时间
    long getTime() : 获取时间信息

    long 时间 --> Date
    Date(long date)
    void setTime(long millis)

SimpleDateFormat : 简单日期格式化的类(JDK8之前)

  • String 时间 和 Date 时间进行转换的类

  • SimpleDateFormat的构造方法:
    SimpleDateFormat(String pattern) : 创建日期格式化类对象
    String pattern : 时间格式代码
    y : 年 M: 月 d: 日 H: 小时 m: 分钟 s: 秒
    例如: yyyy年MM月dd日 HH:mm:ss
    yyyy-MM-dd HH:mm:ss

  • 格式化的方法:
    String format(Date date) : 按照创建SimpleDateFormat对象时传递的日期格式格式化日期

  • 解析的方法:
    Date parse(String date) : 按照创建SimpleDateFormat对象时传递的日期格式解析字符串时间
    //一定要注意: 字符串时间的格式 要和时间代码给的格式一致!!
    //异常 : ParseException 解析异常

  • 格式化 Format: Date 时间对象 -格式-> String 时间对象 —> 为了更好看的去表示时间

  • Date类中的过时方法 : //这些方法都是JDK设计好的,我无法更改表示时间的样式
    String toLocaleString() : 按照本地的时间习惯表示时间
    String toGMTString() : 按照零时区的时间习惯表示时间

  • 解析 Parse: String 时间对象 -格式-> Date 时间对象
    请添加图片描述

Calendar 日历类(JDK8之前)

  • Calendar 日历类 是一个时间操作的"工具类" -> 它是Date类中大量过时方法的替代

  • 关于时间的文化差异:
    星期: 周日是一周的第一天
    月份: 0-11月

  • 构造方法: 有也不能用 -> 因为Calendar类是一个抽象类不能创建对象

  • 创建对象的方法:
    static Calendar getInstance()

  • 设置和获取时间信息的方法:
    int get(int field): 根据时间字段获取该时间字段的信息
    int field : 时间字段 返回值: 时间信息

    void set(int field,int value): : 把value的值设置到某个时间字段上
    void set(int year,int month,int day,int hour,int minute,int second)

  • 时间字段: 在Calendar类中有一些静态常量: YEAR…

  • 转换功能: Date <-> Calendar 之间转换
    Calendar --> Date
    Date getTime() : 把日历对象上的时间信息定位到Date对象上
    Date --> Calendar
    void setTime(Date date): 把传入的Date对象的时间瞬间定位在调用方法的日历对象上

  • 转换功能: long <-> Calendar 之间转换
    Calendar --> long
    long getTimeInMillis() 返回此 Calendar 的时间值,以毫秒为单位。
    long --> Calendar
    void setTimeInMillis(long millis) 用给定的 long 值设置此 Calendar 的当前时间值。

LocalDateTime/LocalDate/LocalTime JDK8时间操作

  • LocalDateTime/LocalDate/LocalTime : 本地日期时间/本地日期/本地时间

  • 概述: 此类的操作像Calendar,但是它解决了文化差异! 时间精度: 纳秒

  • 创建对象 : 本类的静态方法
    static LocalDateTime now() : 获取LocalDateTime对象,时间指向现在
    static LocalDateTime of(int year, int month, int dayOfMonth, int hour, int minute, int second) : 获取LocalDateTime对象,时间指向传入的值

  • LocalDateTime类中的时间间隔方法

  • LocalDateTime类中的成员方法:
    long until(Temporal endExclusive, TemporalUnit unit)
    Temporal endExclusive : 直到什么时候
    Temporal 接口是 LocalDateTime/LocalDate/LocalTime的父接口
    TemporalUnit unit : 时间单位的接口 -> 实现类 ->ChronoUnit 枚举类

  • LocalDateTime的get系列方法(获取值)

  • int getYear() :获取年信息
    int getMonthValue() :获取月份信息(1-12)
    int getDayOfMonth(): 获取天信息
    int getHour() :获取小时信息
    int getMinute():获取分钟信息
    int getSecond(): 获取秒钟信息
    DayOfWeek getDayOfWeek():获取星期信息
    int getDayOfYear():获取年中天信息
    Month getMonth(): 获取月份信息(枚举对象返回)
    int getNano():获取纳秒信息

  • LocalDateTime的plus系列方法(加)

  • plus系列方法是对日期字段进行做加法的操作!
    LocalDateTime plusYears(long years)
    LocalDateTime plusMonths(long months)
    LocalDateTime plusDays(long days)
    LocalDateTime plusHours(long hours)
    LocalDateTime plusMinutes(long minutes)
    LocalDateTime plusSeconds(long seconds)
    LocalDateTime plusNanos(long nanos)
    LocalDateTime plusWeeks(long weeks)

  • LocalDateTime的minus系列方法(减)

  • minus系列方法是对日期字段进行做减法的操作!
    LocalDateTime minusYears(long years)
    LocalDateTime minusMonths(long months)
    LocalDateTime minusDays(long days)
    LocalDateTime minusHours(long hours)
    LocalDateTime minusMinutes(long minutes)
    LocalDateTime minusSeconds(long seconds)
    LocalDateTime minusNanos(long nanos)
    LocalDateTime minusWeeks(long weeks)
    注意:

    1. 记得接收, 因为时间修改是生成新的LocalDateTime对象,老的LocalDateTime对象不会改变
    2. 如果你传入的是正数就是做减法,如果你传入的是负数就是做加法
  • LocalDateTime的with系列方法(设置值)

  • with系列方法是对日期字段进行设置值的操作!
    LocalDateTime withYears(long years)
    LocalDateTime withMonths(long months)
    LocalDateTime withDays(long days)
    LocalDateTime withHours(long hours)
    LocalDateTime withMinutes(long minutes)
    LocalDateTime withSeconds(long seconds)
    LocalDateTime withNanos(long nanos)
    LocalDateTime withWeeks(long weeks)
    注意:

    1. 记得接收, 因为时间修改是生成新的LocalDateTime对象,老的LocalDateTime对象不会改变

DateTimeFormatter JDK8日期格式化类

  • DateTimeFormatter 是替换 SimpleDateFormat 类;

  • DateTimeFormatter 专门用来提供日期格式的类 -> 只用来提供日期格式

  • 格式化的方法来自于LocalDateTime;

  • 如何创建DateTimeFormatter对象:
    static DateTimeFormatter ofPattern(String pattern) : 专门提供日期格式

  • 格式化操作:LocalDateTime -> LocalDateTime对象 转换成 String对象
    LocalDateTime类中的方法 : String format(DateTimeFormatter formatter)

  • 解析操作: LocalDateTime的静态方法 -> String对象 转换成 LocalDateTime对象

  • LocalDateTime的静态方法 :static LocalDateTime parse(String 字符串时间,DateTimeFormatter 日期格式)

Period 年月日时间间隔类

  • Period 年月日时间间隔类

  • 获取年月日时间间隔对象的方法:
    static Period between(LocalDate start, LocalDate end)

Duration 时分秒时间间隔类

  • Duration 时分秒时间间隔类

  • 获取时分秒时间间隔类对象的方法:
    //Temporal 是LocalDateTime/LocalDate/LocalTime的父接口
    static Duration between(Temporal startInclusive, Temporal endExclusive)
    //注意不能往里传入 LocalDate 对象

  • long get(TemporalUnit unit) : 获取指定时间单位的时间间隔数(只能传入秒和纳秒单位)

搞懂四种不同类型时间之间的转换秘籍:

请添加图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值