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));
相关推荐
没书读了8 分钟前
ssm框架-spring-spring声明式事务
java·数据库·spring
----云烟----10 分钟前
QT中QString类的各种使用
开发语言·qt
lsx20240614 分钟前
SQL SELECT 语句:基础与进阶应用
开发语言
小二·16 分钟前
java基础面试题笔记(基础篇)
java·笔记·python
开心工作室_kaic39 分钟前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
向宇it40 分钟前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
懒洋洋大魔王40 分钟前
RocketMQ的使⽤
java·rocketmq·java-rocketmq
武子康1 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud
转世成为计算机大神1 小时前
易考八股文之Java中的设计模式?
java·开发语言·设计模式
宅小海2 小时前
scala String
大数据·开发语言·scala