JAVA——时间类

JAVA——时间类

世界标准时间

  1. 格林尼治时间 简称GMT

  2. 目前世界标准时间已替换为:原子钟

中国标准时间:世界标准时间+8小时

 

时间单位换算

1秒=1000毫秒

1毫秒=1000微秒

1微秒=1000纳秒

 

如何创建对象?

Date date=new Date();

Date date =new Date(指定毫秒值);

如何修改时间对象的毫秒值?

setTime(毫秒值);

获取时间对象的毫秒值

getTime();

 

simpleDateFormat类

作用:

格式化:把时间变成我们喜欢的格式

解析:把字符串表示的时间变成Date对象

常用方法说明
public final String format(Date dete) 格式化(日期对象—>字符串)
public Date parse(String source) 解析(字符串—>日期对象)

 

Y——年

M——月

d——日

H——时

m——分

s——秒

例:2023-11-11 13:27:06 ---->yyyy-MM-dd HH:mm:ss

 

Calendar

代表系统当前时间的日历对象 可以单独修改,获取时间中的日历对象

细节:Calendar是一个抽象类,不能直接创建对象

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

方法名说明
public final Date getTime() 获取日期对象
pubilc 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) 为某个字段增加或减少指定的值(正数是增加,负数是减少)
细节: 月份:范围0~11,如果获取出来是0,那实际上是1月

星期:在老外眼里,星期日是一周的第一天。1(星期日) 2(星期一) 3(星期二)以此类推

JDK8新增的时间类

zoneld时区

方法名说明
static set< String > getAvvailablezoneIds() 获取java中支持的所有时区
static ZoneId systemDefault() 获取系统默认时区
static ZoneId of(String zoneId) 获取一个指定时区

Instant时间戳

方法名说明
static Instant now() 获取当前时间的Instant对象(标准时间)
static Instant ofEpochSecond(long epochSecond) 根据秒获取对象
static Instant ofEpochMilli(long epochMilli) 根据毫秒获取Instant对象
static Instant ofEpochSecond(long epochSecond,long nanoAdjustment) 根据秒和纳秒获取Instant对象
zonedDateTime atzone(zoneId zone) 指定时区
boolean isBefore(Instant otherInstant) 判断调用者代表的时间是否在参数表示的时间后面
boolean isAfter(Instant otherInstant) 跟上面相反
Instant minusSeconds(long secondsToSubtract) 减少秒的方法
Instant minusMillis(long millisToSubtract) 减少毫秒的方法
Instant minusNanos(long nanosToSubtract) 减少纳秒的方法
Instant plusXxxx(......) 增加时间系列的方法 同上

 

zoneDateTime带时区的时间

方法名说明
static zonedDateTime now() 获取当前时间的ZonedDateTime对象
static zonedDateTime ofXxxx() 获取指定时间的zonedDateTime对象
zonedDateTime withXxx(时间) 修改时间系列的方法
zonedDateTime minusXxx(时间) 减少时间系列的方法
zonedDateTime plusXxx(时间) 增加时间系列的方法

 

JDK8新增的时间对象都是不可变的,如果修改了时间,调用者不会发生改变,产生一个新的时间

Calendar日历类

JDK8以后月份是正常的1-12月

LocalDate年 月 日

LocalTime 时 分 秒

LocalDateTime 年 月 日 时 分 秒

 

方法名说明
static xxx now() 获取当前时间的对象
static xxx of(...) 获取指定时间的对象
get开头方法 获取日历中的年月日时分秒等信息
isBefore,isAfter 比较两个LocalDate
with开头 修改时间
minus 减少时间
plus开头 增加时间
public LocalDate toLocalDate() LocalDateTime转换成LocalDate对象
.isLeapYear 判断是否为闰年

 

工具类

Duration 用于计算两个时间间隔(秒,纳秒)

period 用于计算两个日期间隔(年 月 日)

chronoUnit 用于计算两个日期间隔

例:chronoUnit DAYS.between(小日期,大日期)

posted @   java贼溜  阅读(92)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示