阶段二-Day10-日期类

日期类结构:

1.java.util.Date是日期类

2.DateFormat是日期格式类、SimpleDateFormat是日期格式类的子类

Timezone代表时区

3.Calendar是日历类,GregorianCalendar是日历的子类

一. 常用类-Date

1.1 Date构造方法

Date(long date) 使用给定的毫秒时间价值构建 Date对象

Date() 返回系统的当前时间

日期是有时间的起点的,以地理位置格林尼治时间1970-01-01 00:00:00 为标准,视为时间的起点;Date(long date) 指的是距离标准时间过了多少毫秒;

public class Test01 {public static void main(String[] args) {Date date = new Date();//创建对象,返回当前系统的时间System.out.println(date);//创建距离格林尼治时间标准时间过了1000毫秒的日期Date date2 = new Date(1000L);System.out.println(date2);}
}

1.2 Date类常用方法

public class Test01 {public static void main(String[] args) {//1) 创建Date对象返回当前时间Date date = new Date();System.out.println(date);//2) 获得Date时间距离1970-1-1 00:00:00 经过的毫秒数long time = date.getTime();System.out.println(time);//3) 调用System.currentTimeMillis()返回当前时间对应的毫秒数long l = System.currentTimeMillis();System.out.println(l);//4) 根据毫秒数创建日期对象Date date1 = new Date(l);System.out.println(date1);}
}

1.3 常用的日期相关类-java.util.SimpleDateFormat

format方法
public class Test {public static void main(String[] args) {Date date = new Date();//定义字符串标准SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//把日期类变成字符串String s = sdf.format(date);System.out.println(s);}
}
parse方法
public class Test {public static void main(String[] args) throws ParseException {String text = "2023年8月21日 20:52:58";SimpleDateFormat sdf = new SimpleDateFormat("yyyy年M月dd日 HH:mm:ss");Date date = sdf.parse(text);System.out.println(date);}
}

1.4 常用的日期相关类-java.util.Calender

创建Calender日历对象

public class Test {public static void main(String[] args) {//获取实例对象:静态方法,推荐//1.创建对象//Calendar是抽象类,所以不能直接创建对象//使用getInstance()方法创建对象Calendar calendar = Calendar.getInstance();//2.set方法设置日历信息//设置年calendar.set(Calendar.YEAR,2019);//日历用0-11 表示  1-12月calendar.set(Calendar.MONTH,1);//设置日 一月中的天数calendar.set(Calendar.DAY_OF_MONTH,8);//设置一天中的小时数calendar.set(Calendar.HOUR_OF_DAY,15);//设置一小时的分钟数calendar.set(Calendar.MINUTE,20);//设置一分钟的秒数calendar.set(Calendar.SECOND,58);calendar.set(2018,1,2);calendar.set(2017,1,2,22,20,20);//3.get方法获取日历信息System.out.println(calendar.get(Calendar.YEAR));//日历用0-11 表示  1-12月System.out.println(calendar.get(Calendar.MONTH));System.out.println(calendar.get(Calendar.DAY_OF_MONTH));System.out.println(calendar.get(Calendar.HOUR_OF_DAY));System.out.println(calendar.get(Calendar.MINUTE));System.out.println(calendar.get(Calendar.SECOND));//4.将日历转为日期Date date = calendar.getTime();System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));}
}

二. 新日期类

旧日期类计算复杂存在线程安全问题

2.1 日期初始化操作

通过now方法 获得

public class Test {public static void main(String[] args) {//获得Instant对象,获取格林尼治的当前时间Instant instant = Instant.now();System.out.println(instant);//获得LocalDate,获得本地的当前年月日LocalDate localDate = LocalDate.now();System.out.println(localDate);//获得LocalTime,获得本地的当前时分秒LocalTime localTime = LocalTime.now();System.out.println(localTime);//获得LocalDateTime实例,获得本地的当前年、月、日、时、分、秒LocalDateTime localDateTime = LocalDateTime.now();System.out.println(localDateTime);//使用now方法创建ZonedDateTime实例,获得本地时区的年、月、日、时、分、秒ZonedDateTime zonedDateTime = ZonedDateTime.now();//我国时间以东8区为准,也就是所说的北京时间。按东8区计算System.out.println(zonedDateTime);}
}
public class Test2 {public static void main(String[] args) {Year year = Year.now();System.out.println(year);YearMonth month = YearMonth.now();System.out.println(month);MonthDay day = MonthDay.now();System.out.println(day);}
}

通过of方法 获得

public class Test {public static void main(String[] args) {//根据参数创建本地日期对象LocalDate date = LocalDate.of(2023, 12, 1);System.out.println(date);//根据参数创建本地时间对象LocalTime localTime = LocalTime.of(9,12,12,311);System.out.println(localTime);//根据参数创建本地日期加时间对象LocalDateTime localDateTime = LocalDateTime.of(2023,12,12,12,12,12);System.out.println(localDateTime);//根据日期和时间创建本地日期时间对象LocalDateTime localDateTime1 = LocalDateTime.of(date,localTime);System.out.println(localDateTime1);}
}

未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/318049.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型实战营第二期——1. 书生·浦语大模型全链路开源开放体系

文章目录 1. 实战营介绍2. 书生浦语大模型介绍2.1 数据2.2 预训练2.3 微调2.4 评测2.5 部署2.6 智能体(应用) 1. 实战营介绍 github链接:https://github.com/internLM/tutorialInternLM:https://github.com/InternLM书生浦语官网:https://in…

基于混合蛙跳算法优化的Elman神经网络数据预测 - 附代码

基于混合蛙跳算法优化的Elman神经网络数据预测 - 附代码 文章目录 基于混合蛙跳算法优化的Elman神经网络数据预测 - 附代码1.Elman 神经网络结构2.Elman 神经用络学习过程3.电力负荷预测概述3.1 模型建立 4.基于混合蛙跳优化的Elman网络5.测试结果6.参考文献7.Matlab代码 摘要&…

考PMP真的有用吗?看完立马不犹豫了!

其实我个人觉得在你考证之前,值得反思的是:为什么要考这个证书?是因为公司需要?个人职业发展?还是受到新闻报道或广告的影响,觉得PMP证书有价值,只是想了解一下。这样就会导致很多人会说&#x…

【obj To 3DTiles 格式转换】 可以自定义经纬高、属性表等参数。

目录 0 引言1 3DTiles数据2 objTo3DTiles2.1 工具的安装2.1.1 拓展:Node.js 和 npm 2.2 工具的使用2.2.1 输出成瓦片数据2.2.2 输出带有坐标参数的瓦片数据 3 查看3DTiles数据 🙋‍♂️ 作者:海码007📜 专栏:Cesiumfor…

蓝桥圣诞树(C++)

问题描述 输入样例: 1 3 101 1 2 2 3 输出样例: YES 思路: 这道题还是比较好想的,因为它构造的二叉树是用边连接起来的,不是像之前一样从上到下从左到右按编号构造的,所以可以用邻接表来存每个点还有边&am…

RK3568驱动指南|第九篇 设备模型-第100章 在总线目录下创建属性文件实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

59.网游逆向分析与插件开发-游戏增加自动化助手接口-文字资源读取类的C++还原

内容来源于:易道云信息技术研究院VIP课 上一个内容:游戏菜单文字资源读取的逆向分析-CSDN博客 之前的内容:接管游戏的自动药水设定功能-CSDN博客 码云地址(master分支):https://gitee.com/dye_your_fing…

基于随机颜色反转合成和双分支学习的单模态内镜息肉分割

Single-Modality Endoscopic Polyp Segmentation via Random Color Reversal Synthesis and Two-Branched Learning 基于随机颜色反转合成和双分支学习的单模态内镜息肉分割背景难点贡献实验方法Color Reversal Strategy(颜色反转策略) 损失函数Thinking…

JDK17 - 开发者视角,从 JDK8 ~ JDK17 都增加了哪些新特性

目录 前言 一、站在开发视角,从 JDK8 升级到 JDK17 都有哪些新特性 1.1、JDK8 新特性 1.1.1、Optional 类 a)简介 b)使用方法 c)使用场景 1.2、JDK9 新特性 1.2.1、Optional - ifPresentOrElse 解决 if-else 1.2.2、Opt…

金和OA c6 uploadfileeditorsave接口存在任意文件上传漏洞

产品简介 金和网络是专业信息化服务商,为城市监管部门提供了互联网监管解决方案,为企事业单位提供组织协同OA系统升开发平台,电子政务一体化平台智慧电商平合等服务 漏洞概述 金和-c6 uploadfileeditorsave 任意文件上传,攻击者…

正则表达式 详解,10分钟学会

大家好,欢迎来到停止重构的频道。 本期我们讨论正则表达式。 正则表达式是一种用于匹配和操作文本的工具,常用于文本查找、文本替换、校验文本格式等场景。 正则表达式不仅是写代码时才会使用,在平常使用的很多文本编辑软件,都…

基于rk3568 Android H265推流SRS低延迟网页播放方案

在音视频领域,融合推流,低码流,低延迟,浏览器H5化是一个降低成本,提升用户体验的重要手段。同时适配现有直播的生态也是一个必要条件。 在满足上述要求的情况下,我做了以下实践,取得了良好的效果…