API(时间类)

一、Date类

java.util.Date`类 表示特定的瞬间,精确到毫秒。

Date常用方法:

public long getTime() 把日期对象转换成对应的时间毫秒值。

public void setTime(long time) 把方法参数给定的毫秒值设置给日期对象
二、SimpleDateFormat类

public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。参数pattern是一个字符串,代表日期时间的自定义格式。

public simpleDateFormat() 默认格式

public simpleDateFormat(String pattern) 指定格式

public final string format(Date date) 格式化(日期对象 ->字符串)

public Date parse(string source) 解析(字符串 ->日期对象)

三、Calendar类

java.util.Calendar类表示一个"日历类",可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类。

通过getlnstance方法获取对象

java 复制代码
Calendar c = Calendar.getInstance();

public static Calendar lgetInstance() 获取当前时间的日历对象

public final Date getTime() 获取日期对象

public final setTime(Date date) 给日历设置日期对象

public long getTimeInMillis() 拿到时间毫秒值

public void setTimeInMillis(long millis) 给日历设置时间毫秒值

public int get(int field) 获取日期中的某个字段信息

public void set(int field,int value) 修改日历的某个字段信息

public void add(int field,int amount) 为某个字段增加/减少指定的值

1.获取日历对象

细节1:Calendar是一个抽象类,不能直接new,而是通过一个静态方法获取到子类对象

底层原理:

会根据系统的不同时区来获取不同的日历对象,默认表示当前时间。

把会把时间中的纪元,年,月,日,时,分,秒,星期,等等的都放到一个数组当中

日 :纪元

1 :年

2 :月

3 : 一年中的第几周

4:一个月中的第几周

5: 一个月中的第几天(日期)

....

2:

月份:范围0~11 如果获取出来的是.那么实际上是1月。

星期:在国外,星期日是一周中的第一天

1(星期日) 2(星期一) 3(星期二) 4(星期三) 5(星期四) 6(星期五) 7(星期六)


四、ZoneId 时区
static Set<string> getAvailableZoneIds() 获取Java中支持的所有时区

static ZoneId systemDefault() 获取系统默认时区

static Zoneld of(string zoneld) 获取一个指定时区
五、Instant 时间戳
static Instant now() 获取当前时间的Instant对象(标准时间)

static Instant ofXxxx(long epochMilli) 根据(秒/毫秒/纳秒)获取Instant对象

ZonedDateTime atZone(ZoneIdzone) 指定时区

boolean isxxx(Instant otherInstant) 判断系列的方法

Instant minusXxx(long millisToSubtract) 减少时间系列的方法

Instant plusXxx(long millisToSubtract) 增加时间系列的方法

获取对象时间:

ZonedDateTime time = Instant.now().atZone(ZoneId.of("Asia/Shanghai"));

六、ZoneDateTime 带时区的时间
static ZonedDateTime now() 获取当前时间的ZonedDateTime对象

static ZonedDateTime ofXxxx(。。。) 获取指定时间的ZonedDateTime对象

ZonedDateTime withXxx(时间) 修改时间系列的方法

ZonedDateTime minusXxx(时间) 减少时间系列的方法

ZonedDateTime plusXxx(时间) 增加时间系列的方法
七、DateTimeFormatter 用于时间的格式化和解析
static DateTimeFormatter ofPattern(格式) 获取格式对象

String format(时间对象) 按照指定方式格式化
八、LocalDate 年、月、日

LocalTime 时、分、秒

LocalDateTime 年、月、日、时、分、秒

九、Duration 时间间隔(秒,纳,秒)

java 复制代码
// 本地日期时间对象。
LocalDateTime today = LocalDateTime.now();
System.out.println(today);

// 出生的日期时间对象
LocalDateTime birthDate = LocalDateTime.of(2000, 1, 1, 0, 0, 0);
System.out.println(birthDate);

Duration duration = Duration.between(birthDate, today);//第二个参数减第一个参数
System.out.println("相差的时间间隔对象:" + duration);

System.out.println("============================================");
System.out.println(duration.toDays());//两个时间差的天数
System.out.println(duration.toHours());//两个时间差的小时数
System.out.println(duration.toMinutes());//两个时间差的分钟数
System.out.println(duration.toMillis());//两个时间差的毫秒数
System.out.println(duration.toNanos());//两个时间差的纳秒数

十、Period 时间间隔(年,月,日)

java 复制代码
// 当前本地 年月日
LocalDate today = LocalDate.now();
System.out.println(today);

// 生日的 年月日
LocalDate birthDate = LocalDate.of(2000, 1, 1);
System.out.println(birthDate);

Period period = Period.between(birthDate, today);//第二个参数减第一个参数

System.out.println("相差的时间间隔对象:" + period);
System.out.println(period.getYears());
System.out.println(period.getMonths());
System.out.println(period.getDays());

System.out.println(period.toTotalMonths());

十一、ChronoUnit 时间间隔(所有单位)

java 复制代码
// 当前时间
LocalDateTime today = LocalDateTime.now();
System.out.println(today);
// 生日时间
LocalDateTime birthDate = LocalDateTime.of(2000, 1, 1,0, 0, 0);
System.out.println(birthDate);

System.out.println("相差的年数:" + ChronoUnit.YEARS.between(birthDate, today));
System.out.println("相差的月数:" + ChronoUnit.MONTHS.between(birthDate, today));
System.out.println("相差的周数:" + ChronoUnit.WEEKS.between(birthDate, today));
System.out.println("相差的天数:" + ChronoUnit.DAYS.between(birthDate, today));
System.out.println("相差的时数:" + ChronoUnit.HOURS.between(birthDate, today));
System.out.println("相差的分数:" + ChronoUnit.MINUTES.between(birthDate, today));
System.out.println("相差的秒数:" + ChronoUnit.SECONDS.between(birthDate, today));
System.out.println("相差的毫秒数:" + ChronoUnit.MILLIS.between(birthDate, today));
System.out.println("相差的微秒数:" + ChronoUnit.MICROS.between(birthDate, today));
System.out.println("相差的纳秒数:" + ChronoUnit.NANOS.between(birthDate, today));
System.out.println("相差的半天数:" + ChronoUnit.HALF_DAYS.between(birthDate, today));
System.out.println("相差的十年数:" + ChronoUnit.DECADES.between(birthDate, today));
System.out.println("相差的世纪(百年)数:" + ChronoUnit.CENTURIES.between(birthDate, today));
System.out.println("相差的千年数:" + ChronoUnit.MILLENNIA.between(birthDate, today));
System.out.println("相差的纪元数:" + ChronoUnit.ERAS.between(birthDate, today));
相关推荐
卑微的Coder17 分钟前
python画正方形、平行四边形、六边形、五角星、风车(四个半圆)
开发语言·python
bugtraq202119 分钟前
Fyne ( go跨平台GUI )中文文档-绘图和动画(三)
开发语言·后端·golang
椅子哥26 分钟前
MyBatis操作数据库-XML实现
xml·java·数据库·spring boot·mybatis
2402_857589361 小时前
基于Spring Boot的Java免税商品优选商城设计
java·spring boot·后端
L_cl1 小时前
数据结构与算法——Java实现 7.习题——反转链表
java·开发语言·链表
原机小子1 小时前
嵌入式系统开发利器:深入解析MATLAB嵌入式系统工具箱
开发语言·matlab·fpga开发
我明天再来学Web渗透1 小时前
【java面经】微服务架构速记
java·开发语言·微服务·云原生·架构
唤醒手腕1 小时前
2024年最新 Python 大数据网络爬虫技术基础案例详细教程(更新中)
开发语言·爬虫·python
秦淮渔火1 小时前
单例模式(饿汉式-懒汉式)
java·开发语言·单例模式
蔚一1 小时前
Java设计模式(单例模式)——单例模式存在的问题(完整详解,附有代码+案例)
java·开发语言·单例模式·设计模式