时间相关类(JDK8之后)

目录

1.ZoneId类

a.概述

b常见方法

1.获取Java中支持的所有时区

2.获取当前系统的默认时区

3.获取指定时区

2.Instant类

a.获取当前时间的Instant对象(标准时间)

b.根据(秒/毫秒/纳秒)获取Instant对象

c.指定时区

​编辑d. 判断

e.增加/减少时间

3.ZoneDateTime类

a.获取当前时间对象(带时区)

b.获取指定的时间对象(带时区)

c.修改时间

d.减少时间

e.增加时间  

1.SimpleDatrFormat类

a.解析/格式化器

b.格式化

2.LocalDate类(年、月、日)

3.LocalTime类(时、分、秒)

4.LocalDateTime类(年、月、日、时、分、秒)

a.LocalDateTime类转化为LocalDate类

b.LocalDateTime类转化为LocalTime类

1.Duration类(秒,纳秒)

2.Period类(年、月、日)

3.ChronoUnit类(所有单位)

a.计算两个时间的差值


Date类:

1.ZoneId类

a.概述

时区

b常见方法

1.获取Java中支持的所有时区

Set<>                                      集合

2.获取当前系统的默认时区

3.获取指定时区

2.Instant类

a.获取当前时间的Instant对象(标准时间)

b.根据(秒/毫秒/纳秒)获取Instant对象

epochSecond           秒                          nanoAdjustment                    纳秒

c.指定时区

d. 判断

otheraInstant:      指定时刻

e.增加/减少时间

3.ZoneDateTime类

a.获取当前时间对象(带时区)

b.获取指定的时间对象(带时区)

c.修改时间

public ZoneDateTime withXxx(时间)

d.减少时间

 public ZoneDateTime minusXxx(时间)

e.增加时间  

 public ZoneDateTime plusXxx(时间)

 SimpleDateFormat(日期格式化类):

1.SimpleDatrFormat类

a.解析/格式化器

b.格式化

2.LocalDate类(年、月、日)

与Data类类似,方法详见api

3.LocalTime类(时、分、秒)

与Data类类似,方法详见api

4.LocalDateTime类(年、月、日、时、分、秒)

与Data类类似,方法详见api

补充:

a.LocalDateTime类转化为LocalDate类

b.LocalDateTime类转化为LocalTime类

工具类:

1.Duration类(秒,纳秒)

详见api文档

2.Period类(年、月、日)

详见api文档

3.ChronoUnit类(所有单位)

a.计算两个时间的差值

Temporal:             时间类

案例:

import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;

class Main {

    public static void main(String[] args) {
        //当前时间
        LocalDateTime today=LocalDateTime.now();
        //生日时间
        LocalDateTime birthday=LocalDateTime.of(2000,1,1,0,0,0);
        System.out.println("相差年数:"+ ChronoUnit.YEARS.between(birthday,today));//后面的时间-前面的时间

    }
}

枚举:

以下是一个基于jdk8的日期时间计算工具的示例代码: ``` import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.Period; import java.time.format.DateTimeFormatter; public class DateUtil { private static final DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd"); private static final DateTimeFormatter TIME_FORMAT = DateTimeFormatter.ofPattern("HH:mm:ss"); private static final DateTimeFormatter DATE_TIME_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); public static String formatDate(LocalDate date) { return DATE_FORMAT.format(date); } public static String formatTime(LocalTime time) { return TIME_FORMAT.format(time); } public static String formatDateTime(LocalDateTime dateTime) { return DATE_TIME_FORMAT.format(dateTime); } public static LocalDate parseDate(String dateStr) { return LocalDate.parse(dateStr, DATE_FORMAT); } public static LocalTime parseTime(String timeStr) { return LocalTime.parse(timeStr, TIME_FORMAT); } public static LocalDateTime parseDateTime(String dateTimeStr) { return LocalDateTime.parse(dateTimeStr, DATE_TIME_FORMAT); } public static LocalDate addDays(LocalDate date, int days) { return date.plusDays(days); } public static LocalDateTime addHours(LocalDateTime dateTime, int hours) { return dateTime.plusHours(hours); } public static LocalDateTime addMinutes(LocalDateTime dateTime, int minutes) { return dateTime.plusMinutes(minutes); } public static LocalDateTime addSeconds(LocalDateTime dateTime, int seconds) { return dateTime.plusSeconds(seconds); } public static Period getPeriod(LocalDate startDate, LocalDate endDate) { return Period.between(startDate, endDate); } public static long getSeconds(LocalDateTime startDateTime, LocalDateTime endDateTime) { return startDateTime.until(endDateTime, java.time.temporal.ChronoUnit.SECONDS); } public static long getMinutes(LocalDateTime startDateTime, LocalDateTime endDateTime) { return startDateTime.until(endDateTime, java.time.temporal.ChronoUnit.MINUTES); } public static long getHours(LocalDateTime startDateTime, LocalDateTime endDateTime) { return startDateTime.until(endDateTime, java.time.temporal.ChronoUnit.HOURS); } public static long getDays(LocalDate startDate, LocalDate endDate) { return startDate.until(endDate, java.time.temporal.ChronoUnit.DAYS); } } ``` 这个工具包含了日期时间格式化、解析、加减、差值计算等常用操作。使用该工具可以方便地处理日期时间计算相关的业务需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值