首页 > 编程语言 >JAVA——时间类

JAVA——时间类

时间:2023-06-07 16:44:05浏览次数:48  
标签:JAVA Instant 对象 获取 时间 static public

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(小日期,大日期)

标签:JAVA,Instant,对象,获取,时间,static,public
From: https://www.cnblogs.com/longlonglong777/p/17463828.html

相关文章

  • java中基本数据类型和包装数据类型
    基本数据类型和包装数据类型在Java中有着重要的区别和联系,对于Java程序员来说,熟悉这两种数据类型的特点和使用方法是非常必要的。 基本数据类型 Java中的基本数据类型一共有8种,分别为:-byte-short-int-long-float-double-char-boolean基本数据类型是指可以......
  • java微信公众号 推送消息
    WxConfig.java @Slf4j@ServicepublicclassWxConfig{@ResourceprivateWxClientwxClient;//appIdprivatestaticfinalStringappId="xxxx";//appIdSecretprivatestaticfinalStringappIdSecret="xxxx";privatestat......
  • java代码调用Python代码
    1,使用runtime调用Python脚本String[]arguments=newString[]{"E:\\ProgramFiles\\python.exe","E:\\wzCode\\signal.py",Arrays.toString(datas),String.valueOf(Num)};......
  • Java7新特性: 多异常捕获
    在Java7中引入了一种新的异常处理机制,即多异常捕获。在之前的版本中,我们通常使用单个catch块来捕获所有可能抛出的异常。但是,这种方式可能导致代码变得冗长且难以阅读。多异常捕获机制可以使代码更加简洁、易读,并且可以更准确地处理不同类型的异常情况。接下来就让我们大家一起来看......
  • 蓝桥杯十一届JavaA组-C++解题
    随便乱写,目前正确性未知C.本质上升序列#include<bits/stdc++.h>usingnamespacestd;boolaccess[4][4];intdfs(intidx,intx,inty){ if(x<0||y<0||x>=4||y>=4) return0; if(access[y][x]) return0; if(idx>=15) return1; intcount=0; access......
  • C++ 日期 & 时间
     C++标准库没有提供所谓的日期类型。C++继承了C语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在C++程序中引用<ctime>头文件。有四个与时间相关的类型:clock_t、time_t、size_t 和 tm。类型clock_t、size_t和time_t能够把系统时间......
  • JS 模拟 Java 动态数组(类)
     Code:/***动态数组*@class*/varDArray=(function(){/***数据数组*@type{*[]}*/letdata;/***数组中的元素个数*@type{number}*/letsize;/***调整数组容器大小*@param{number}new_capacity*/co......
  • Java多线程-工具篇-BlockingQueue
    前言:   在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。认......
  • 你是怎么学习 Java 技术的?
    一、Java语言Java语言不只是一门语言。Java学习不是一蹴而就就可以达成的,它是一个循序渐进,由浅入深,由表及里的过程。尤其需要注意的是不能有浅尝辄耻,不求甚解的态度。每个地方只抓一点,等于什么也没得到。每个小范畴内的学习都必须讲究系统性,完整性。二、知识的获取你是......
  • JAVA获取上月、本月的第一天和最后一天
    1、获取【上个月】第一天和上个月最后一天/***获取上个月第一天和上个月最后一天**@throwsParseException*/publicstaticMap<String,String>getLastOneMonthDay(){SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd");Map<String,String......