日期类的使用

前言:

本节主要记录工作中经常使用的日期操作

时间类
JDK1.8的新日期类:LocalDateTime,LocalDate,LocalTime

  • LocalDate:表示日期,通常被视为年月日。 例如:2021年3月23日
  • LocalTime:代表一个时间,通常被看作是小时 - 秒。 时间表示为纳秒精度,例如:11:09:25.234
  • LocalDateTime:代表日期时间,通常被视为年 - 月 - 日 - 时 - 分 - 秒 例如:2021年3月23日 11:09:25.324

LocalDateTime包含属性:

private final LocalDate date;
private final LocalTime time;

LocalDateTime常用API:

1、获取LocalDateTime实例

  • public static LocalDateTime now():从指定时区的系统时钟获取当前的日期时间。
  • public static LocalDateTime now(Clock clock) 从指定的时钟获取当前的日期时间,clock不能为空。
  • public static LocalDateTime of(LocalDate date, LocalTime time)从日期和时间获取一个 LocalDateTime的实例。
  • public static LocalDateTime of(int year, Month month, int dayOfMonth, int hour, int minute, int second) 从年,月,日,小时,分钟和秒获得LocalDateTime的实例,将纳秒设置为零。
    • year - 从默认的 MIN_YEAR到 MAX_YEAR 的年份
    • month - 代表月份的1-12,不为空
    • dayOfMonth - 代表月份中1-31,以月份中天数大小为准。
    • hour - 从0到23的小时。
    • minute - 从0到59的分钟。
    • second - 从0到59的秒其他的同上

2、获取年月日信息

• public int getDayOfYear() 获得日期字段 (获得是年份中的第几天) 例如 2020/12/3 获得2020的第338天。
• public int getDayOfMonth() 获取月份字段 (获取月份中的第几天) 例如 2020/12/3 获得12月的第3天。
• public DayOfWeek getDayOfWeek()获取星期几字段,这是一个枚举DayOfWeek 。(获得整个星期的星期几)例如 2020/12/3 获得这周的星期四。
• public int getYear()获取年份字段。
• public Month getMonth()使用Month枚举获取月份字段(获得不是数组而是英文单词)。
• public int getHour()获取时间字段。
• public int getMinute()获取分钟字段。
• public int getSecond() 获得第秒的字段。

3、修改时间

• public LocalDateTime withYear(int year)返回此年份变更的LocalDateTime的副本。 时间不影响计算,结果将相同。 如果一年中的日期无效,它将被更改为该月的最后一个有效日期。
• public LocalDateTime withMonth(int month)返回此年份更改的LocalDateTime的副本。 时间不影响计算,结果将相同。 如果一年中的日期无效,它将被更改为该月的最后一个有效日期。
• public LocalDateTime withDayOfMonth(int dayOfMonth)返回这个LocalDateTime的副本,并更改日期。 如果结果LocalDateTime无效,则会抛出异常。 时间不影响计算,结果将相同。
• public LocalDateTime withDayOfYear(int dayOfYear)返回此LocalDateTime的副本。 如果得到LocalDateTime是无效的,则抛出异常。
• public LocalDateTime withHour(int hour)返回此日期值更改的LocalDateTime的副本。
• public LocalDateTime withMinute(int minute)返回这个LocalDateTime的副本,小时值更改。
• public LocalDateTime withSecond(int second)返回这个LocalDateTime的副本,并更改秒数值。

4、增加时间

• public LocalDateTime plusYears(long years)返回这个LocalDateTime的副本,并以指定的时间段添加。
• 例如,2008-02-29(闰年)减去一年将导致无效日期2009-02-29(标准年)。 而不是返回无效结果,而是选择2009-02-28的最后一个有效日期。下例是LocalDate的实现:

private static LocalDate resolvePreviousValid(int year, int month, int day) {
        switch (month) {
            case 2:
                day = Math.min(day, IsoChronology.INSTANCE.isLeapYear(year) ? 29 : 28);
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                day = Math.min(day, 30);
                break;
        }
        return new LocalDate(year, month, day);
    }

• public LocalDateTime plusMonths(long months)返回这个LocalDateTime的副本,其中指定的时间段以月为单位。
• public LocalDateTime plusWeeks(long weeks)返回这个LocalDateTime的副本,其中指定的周期以周为单位。
• public LocalDateTime plusDays(long days)返回此LocalDateTime的指定期间的LocalDateTime的副本。
• public LocalDateTime plusHours(long hours)以指定的时间段返回此LocalDateTime的副本,小时数。
• public LocalDateTime plusMinutes(long minutes)以指定的时间(以分钟为单位)返回此LocalDateTime的副本。
• public LocalDateTime plusSeconds(long seconds)返回此副本LocalDateTime在加秒的规定时间。

5、减少时间

• public LocalDateTime minusYears(long years)返回此LocalDateTime的副本,以减去的年份为单
• public LocalDateTime minusMonths(long months)返回此LocalDateTime的副本,指定的时间以月为单位减去。
• public LocalDateTime minusWeeks(long weeks)返回此LocalDateTime一个副本,以指定的周期扣除。
• public LocalDateTime minusDays(long days)返回此LocalDateTime的副本,其中指定的时间间隔以天为单位
• public LocalDateTime minusHours(long hours)以指定的时间段返回此LocalDateTime的副本,以减少的小时数。
• public LocalDateTime minusMinutes(long minutes)返回此LocalDateTime的副本,其中指定的时间间隔以分钟为单位。
• public LocalDateTime minusSeconds(long seconds)返回此LocalDateTime的副本,其中指定的时间间隔以秒为单位。
6、其他
• public String format(DateTimeFormatter formatter)使用指定的格式化程序格式化此日期时间。这个日期时间将传递给格式化程序以生成一个字符串。
• public static LocalDateTime parse(CharSequence text, DateTimeFormatter formatter)使用特定的格式化LocalDateTime从文本字符串获取LocalDateTime的实例。
• public boolean isBefore(ChronoLocalDateTime<?> other) 检查此日期时间是否在指定的日期时间之前 • public boolean isAfter(ChronoLocalDateTime<?> other)检查这个日期时间是否在指定的日期之后。
• public boolean equals(Object obj) 检查这个日期时间是否等于另一个日期时间。
• public boolean isEqual(ChronoLocalDateTime<?> other)检查此日期时间是否等于指定的日期时间。
• public String toString()将此日期时间输出为String,如2007-12-03T10:15:30。
• public LocalDateTime truncatedTo(TemporalUnit unit):根据unit单位截断时间

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值