当前位置: 首页 > news >正文

Java学习笔记Day15

时间相关类

JDK7前时间相关类

时间的相关知识点

  • 全世界的时间,有一个统一的计算标准
  • 格林尼治时间/格林威治时间(Greenwich Mean Time)简称 GMT
  • 计算核心:地球自转一天是24小时,太阳直射时为正午12点
  • 原子钟:利用铯原子的震动频率计算出来的时间,作为世界标准时间(UTC)
  • 中国标准时间:世界标准时间+8小时
  • 时间单位换算:
    • 1秒 = 1000毫秒
    • 1毫秒 = 1000微秒
    • 1微秒 = 1000纳秒
Date时间类

Date类是一个JDK写好的Javabean类,用来描述时间,精确到毫秒

利用空参构造创建的对象,默认表示系统当前时间

利用有参构造创建的对象,表示指定的时间

方法名说明
public Date()创建Date对象,表示当前时间
public Date(long date)创建Date对象,表示指定时间
public void setTime(long time)设置/修改毫秒值
public long getTime()获取时间对象的毫秒值
// 1.创建对象表示一个时间
Date d1 = new Date();
System.out.println(d1);// 2.创建对象表示一个指定时间
Date d2 = new Date(0L);
System.out.println(d2);// 3.修改时间
d2.setTime(1000L);
System.out.println(d2);// 4.获取当前时间的毫秒值
long time = d2.getTime();
System.out.println(time);
SimpleDateFormat类
  • 格式化:把时间变成我们喜欢的格式
  • 解析:把字符串表示的时间变成Date对象
方法名说明
public SimpleDateFormat()构造一个SimpleDateFormat,使用默认格式
public SimpleDateFormat(String pattern)构造一个SimpleDateFormat,使用指定格式
public final String format(Date date)格式化(日期对象->字符串)
public Date parse(String source)解析(字符串->日期对象)

格式化的时间形式的常用模式对应关系

  • y 年
  • M 月
  • d 日
  • H 时
  • m 分
  • s 秒

例如:2023-11-11 13:27:26 yyyy-MM-dd HH:mm:ss

// 1.利用空参构造创建SimpleDateFormat对象,默认格式
SimpleDateFormat sdf1 = new SimpleDateFormat();
Date d1 = new Date(0L);
String str1 = sdf1.format(d1);
System.out.println(str1);   // 1970/1/1 上午8:00// 2.利用带参构造创建SimpleDateFormat对象,指定格式
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String str2 = sdf2.format(d1);
System.out.println(str2);  // 1970年1月1日 08:00:00
Calendar类
  • Calendar代表了系统当前时间的日历对象,可以单独修改,获取时间中的年、月、日
  • 细节:Calender时一个抽象类,不能直接创建对象。

获取Calendar日历类对象的方法

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

常用方法

方法名说明
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 filed,int amount)为某个字段增加/减少指定的值

细节:

  1. Calender是一个抽象类,不能直接new,而是通过一个静态方法获取到子类
    • 底层原理:会根据系统的不同失去来获取不同的日历对象,默认表示当前的时间,会把时间中的纪元,年,月,日,时,分,秒,星期,等等的都放到一个数组当中
  2. 月份:范围是0~11,如果获取出来的是0,那么实际上是1月
  3. 星期:在老外眼里,星期日是一周的第一天,(1 星期日 2 星期一…)

JDK8新增时间类

Date类
ZoneId时区
方法名说明
static Set getAvailableZoneIds()获取Java中所支持的所有时区
static ZoneId systemDefault()获取系统默认时区
static ZoneId of(String zoneId)获取一个指定时区
Instant时间戳
方法名说明
static Instant now()获取当前时间的Instant对象(标准时间)
static Instant ofXxxx(long epochMilli)根据(秒/毫秒/纳秒)获取Instant对象
ZonedDateTime atZone(ZoneId zone)指定时区
boolean isXxx(Instant otherInstant)判断系列的方法
Instant minusXxx(long millisToSubtract)减少时间系列的方法
Instant plusXxx(long millisToSubtracr)增加时间系列的方法
ZonedDateTime

带时区的时间

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

用于实践的格式化和解析

方法名说明
static DateTimeFormatter ofPattern(格式)获取格式对象
String format(时间对象)按照指定方式格式化
LocalDate、LocalTime、LocalDateTime
方法名说明
static XXX now()获取当前时间的对象
static XXX of(。。。)获取指定时间的对象
get开头方法获取日历中的年、月、日、时、分、秒等
isBefore,isAfter比较两个LocalDate
with开头的修改时间系列的方法
minus开头的减少时间系列的方法
plus开头的增加时间系列的方法
http://www.dtcms.com/a/443128.html

相关文章:

  • 湘潭自助建站系统展览馆设计公司排名
  • 电子商务网站规划建设方案网络销售的方法和技巧
  • 阿里巴巴网站的营销策略专用主机网站建设
  • 网站设计制作程序网站策划选题
  • 长沙手机网站公司开发项目的流程
  • 初识MYSQL —— 库和表的操作
  • 怎样做网站推广自己网站建设要维护
  • 常州网站建设公司报价网站安全监测
  • 网站建设的中期报告网页qq登陆聊天
  • 什么网站做执法仪商业网站开发设计报告
  • 海南省建设局网站搜索咋样做班级主页网站
  • 成品网站源码1688体验区网站图片列表怎么做
  • 网站建站网站设计以绿色为主的网站
  • 嘉兴免费网站建站模板化工类 网站模板
  • 网站建设整个流程图威联通怎么建设网站
  • Spring AI 从入门到实战-目录
  • 为什么没有人做像58一样的网站湖南城市建设网站
  • C++进阶(6)——lambda表达式
  • 数据结构(2)-------- 线性表
  • 网站建设 源代码asp.net 做网站
  • C++ :std::bind 还能用吗?它和 Lambda 有什么区别?
  • 优秀网站特点广告制作安装工
  • 威海做网站的哪家好玉树电子商务网站建设
  • 网站建设 引导帮企业建设网站销售
  • 网站建设必备条件dw制作网页步骤
  • 网络协议分层与Socket编程详解
  • 【Svelte 5】当改变$state中的属性值,但是该属性并未在页面中使用,会导致页面重写渲染吗?
  • 基于SpringBoot+Vue的万佳连锁使利店库存管理系统(Echarts图形化分析)
  • 第二章:BI的原理与技术架构
  • 上海万网网站建设湖北住房和城乡建设厅网站