Java--Data类

1.Data类 

java.util.Date.表示指定的时间信息,不支持国际化
构造方法
new Date():当前系统日期和时间
new Date(long):给定日期和时间
主要方法:
after(Date):判断当前日期对象是否在给定日期对象之后
before(Date):判断当前日期对象是否在给定日期对象之前
equals(Object):判断两个日期是否相等
compareTo(Date):比较两个日期的顺序,如果当前日期对象大于给定日期对象,返回正数,如果小于
给定日期对象,返回负数,如果等于给定日期对象,返回零

2. DataFormat

对日期类进行格化式和解析
DateFormat本身是一个抽象类,实例化的方式
一种是通过静态方法的调用,处理的是长日期和长时间类型
1.getDateInstance()
2.getTimeInstance()
3.getDateTimeInstance()
一种是通过创建子类对象
创建SimpleDateFormat对象,处理的是短日期和短时间类型
可以自定义格式

字母日期或时间元素
y

M
d月份中的天数
E星期中的天数
H小时数(24小时)
h小时数(12小时)
m

分钟数

s秒钟数
aAm/Pm/上午/下午标记
S毫秒数

方法:

format(Data):将Data类型,格式化成字符串 

parse(String):将字符串解析成Data类型

3.Calendar

一个抽象类

​//获取实例对象
Calendar calendar=Calendar.getInstance();calendar.set(2000,Calendar.MAY,12);calendar.set(Calendar.HOUR_OF_DAY,9);//获取年份  月份  日期int year = calendar.get(Calendar.YEAR);System.out.println("year = " + year);int month = calendar.get(Calendar.MONTH)+1;//0-11System.out.println("month = " + month);int date = calendar.get(Calendar.DATE);System.out.println("date = " + date);int week = calendar.get(Calendar.DAY_OF_WEEK);//一周的第几天System.out.println("week = " + week);//从周日开始是第1天int day = calendar.get(Calendar.DAY_OF_MONTH);//一个月的第几天System.out.println("day = " + day);int dy = calendar.get(Calendar.DAY_OF_YEAR);System.out.println("dy = " + dy);int hour = calendar.get(Calendar.HOUR);//12小时制的System.out.println("hour = " + hour);int hour1=calendar.get(Calendar.HOUR_OF_DAY);//24小时制System.out.println("hour1 = " + hour1);int minute = calendar.get(Calendar.MINUTE);System.out.println("minute = " + minute);int second = calendar.get(Calendar.SECOND);System.out.println("second = " + second);*///Calendar转DateDate time = calendar.getTime();System.out.println(DateUtil.getSystemDateTime(time));//Date转成CalenderDate date= DateUtil.parse("yyyy-MM-dd HH:mm:ss","2012-01-31 10:10:23");calendar.setTime(date);​

4.GregorianCalendar

格里高利历是公历的标准名称,教皇格里高利十三世于1582年颁布。公历纪元,又称“西元”
儒略历:公元前45年1月1日起执行的一种历法。一年12个月,大小月交替,四年一闰,平年365日,闰年366天。年平均长度365.25天。
1949年9月27日,中国政协通过,采用国际社会通用的西历和西元作业历法和纪年。
四年一闰,百年不闰,四百年一大闰
年均长度365天5小时49分12秒,按此计算方式,3000年左右误差一天。
判断闰年的方法 isLeapYear(int),返回一个boolean类型的值,1582年后,计算方式不同

5.JDK8新增日期工具类

LocalDate:获取本地日期

LocalTime:获取本地时间

LocalDateTime:获取本地日期和时间

 

单独获取日期时间类中的每个值

 

使用给定值修改日期 

 

设置日期和时间的偏移量

 

 

Instant类

代表时间点,获取日期变更子午线时间 

DateTimeFormatter格式化和解析

 //将LocalDate转换成字符串String格式DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy年MM月dd日");LocalDate date=LocalDate.now();String s = formatter.format(date);System.out.println(s);//将LocalDateTime转换成字符串String格式formatter=DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");LocalDateTime localDateTime = LocalDateTime.now();String s1 = formatter.format(localDateTime);System.out.println("s1 = " + s1);//将时间戳转换成字符串日期格式long x= Instant.now().toEpochMilli();LocalDateTime dateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(x), ZoneId.systemDefault());String s2=formatter.format(dateTime);System.out.println("s2 = " + s2);/* System.out.println(ZoneId.systemDefault());System.out.println("dateTime = " + dateTime);*///将字符解析成日期formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd");String s4="2022-09-01";LocalDate parse1 = LocalDate.parse(s4, formatter);System.out.println("parse1 = " + parse1);//将字符解析成日期时间formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");String s3="2022-05-01 12:20:30";LocalDateTime parse = LocalDateTime.parse(s3,formatter);System.out.println("parse = " + parse);

 Period计算两个"日期"之间的间隔,得到的是年月日,假设2022年9月2日和2021年2月1日去计算得到相关1年7月1天,没办法知道具体多少天

LocalDate date1=LocalDate.of(1949,10,1);LocalDate date2=LocalDate.now();/*Period x = Period.between(date1, date2);System.out.println(x.getYears()); //获取相差年份System.out.println(x.getMonths()); //获取相差月份System.out.println(x.getDays()); //获取相差天数*///计算两个日期相差天数方法1long days = ChronoUnit.DAYS.between(date1, date2);System.out.println("days = " + days);//计算两个日期相差天数方法2long days1 = date2.toEpochDay() - date1.toEpochDay();System.out.println("days1 = " + days1);

 Duration计算两个日期时间的间隔

public class Test8 {public static void main(String[] args) {LocalDateTime dateTime=LocalDateTime.of(1922,7,10,10,10,5);LocalDateTime now=LocalDateTime.now();//计算方式1Duration duration = Duration.between(dateTime, now);/* System.out.println(duration.toDays());//计算两个日期时间相差的天数System.out.println(duration.toHours());//计算两个日期时间相差的小时System.out.println(duration.toSeconds());//计算两个日期时间相差的秒数System.out.println(duration.getSeconds());//和上面相同*///计算方式2/*long days = dateTime.until(now, ChronoUnit.DAYS);System.out.println("days = " + days);long hours = dateTime.until(now, ChronoUnit.HOURS);System.out.println("hours = " + hours);long months = dateTime.until(now, ChronoUnit.MONTHS);System.out.println("months = " + months);*///计算方式3long years = ChronoUnit.YEARS.between(dateTime, now);System.out.println("years = " + years);long hours = ChronoUnit.HOURS.between(dateTime, now);System.out.println("hours = " + hours);long  centuries= ChronoUnit.CENTURIES.between(dateTime, now);System.out.println("centuries = " + centuries);}
}

 时间调节器

public class Test9 {public static void main(String[] args) {LocalDate date=LocalDate.now();//获取本周一时间LocalDate date1 = date.with(DayOfWeek.MONDAY);//获取下周一时间date1=date.with(TemporalAdjusters.next(DayOfWeek.MONDAY));//获取本月第一天date1=date.with(TemporalAdjusters.firstDayOfMonth());//获取本月最后一天date1=date.with(TemporalAdjusters.lastDayOfMonth());//获取本年第一天date1=date.with(TemporalAdjusters.firstDayOfYear());System.out.println(date1);}
}

 Date类和LocalDate(LocalTime\LocalDateTime)转换

​
public class Test10 {public static void main(String[] args) {//将LocalDate转成DateLocalDate date2=LocalDate.now();ZonedDateTime zonedDateTime1 = date2.atStartOfDay().atZone(ZoneId.systemDefault());Instant instant = zonedDateTime1.toInstant();Date date1=Date.from(instant);String s = new SimpleDateFormat("yyyy-MM-dd").format(date1);System.out.println(s);//将LocalDateTime转成Date类型LocalDateTime date=LocalDateTime.now();ZonedDateTime zonedDateTime = date.atZone(ZoneId.systemDefault());Instant instant1 = zonedDateTime.toInstant();Date date3=Date.from(instant1);String s1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date3);System.out.println(s1);//Date转成LocalDateDate date4=new Date();ZonedDateTime zonedDateTime = date4.toInstant().atZone(ZoneId.systemDefault());LocalDate date5=zonedDateTime.toLocalDate();System.out.println(date5);//Date转成LocalDateTimeDate date6=new Date();ZonedDateTime zonedDateTime = date6.toInstant().atZone(ZoneId.systemDefault());LocalDateTime date7=zonedDateTime.toLocalDateTime();LocalTime time=zonedDateTime.toLocalTime();System.out.println(date7);}
}​

制作不易,麻烦大家点个赞,写的不好的请各路大神指点

 

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

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

相关文章

(上位机APP开发)调用华为云属性修改API接口修改设备属性

一、功能说明 通过调用华为云IOT提供的属性修改API接口,给设备下发属性修改消息。 API接口地址:https://support.huaweicloud.com/api-iothub/iot_06_v5_0034.html 此接口支持在线调试:https://console.huaweicloud.com/apiexplorer/#/openapi/IoTDA/doc?api=UpdatePrope…

(一)、配置服务器的多个网卡路由,访问多个不同网络段

一、现场网络关系说明 有这么一个需要,服务器有三个网口,网口一需要访问外网,网口二需要访问内网1,网口2需要访问内网2。需要配置路由来满足该网络访问需要。 图1 现场网络关系 二、配置教程 步骤1: a、命令行输入…

文本批量高效编辑神器:空格秒变分隔符,提升工作效率

在信息爆炸的时代,文本处理已成为我们日常工作中不可或缺的一部分。然而,面对海量的文本数据,如何高效、准确地进行编辑和整理,成为了我们面临的难题。今天,我要向大家介绍一款文本批量高效编辑神器——首助编辑高手&a…

Springboot整合Mongodb(含使用案例)

基础语法 插入 插入单条 // 插入一条数据到 "Books" 集合 db.Books.insertOne({title: "如何使用MongoDB",author: "IT小辉同学",year: 2023 })插入多条数据 // 插入十条数据到 "Books" 集合 db.Books.insertMany([{ title: "…

期末考试的成绩怎么发?

随着学期末的临近,我们又迎来了向家长通报学生成绩的关键时刻。下面是一份成绩群发的全新指南,让我们一起高效而温馨地完成这项任务! 1.选择沟通渠道: - 邮件与短信各有优势。邮件更适合提供详尽的成绩分析和评语,而短…

【Nginx】Nginx安装及简单使用

https://www.bilibili.com/video/BV1F5411J7vK https://www.kuangstudy.com/bbs/1353634800149213186 https://stonecoding.net/system/nginx/nginx.html https://blog.csdn.net/qq_40492693/article/details/124453090 Nginx 是一个高性能的 HTTP 和反向代理 Web 服务器。其特…

vim操作小诀窍:快速多行添加注释

在使用vim编译python代码的时候,经常碰到需要将一段代码注释的情况,每次都要按“向下” “向左”按钮,将光标移到句首,然后再键入#井号键。如果行数较多,则操作相当繁琐。 vim里面有将一段文字前面加#注释的方法&#…

LLVM——安装多版本LLVM和Clang并切换使用(Ubuntu)

1、描述 本机(Ubuntu22)已经安装了LLVM-14,但是需要使用LLVM-12。安装LLVM-12和Clang-12并切换使用。 2、过程 安装LLVM-12和Clang-12。 sudo apt-get install llvm-12 sudo apt-get install clang-12 【注】运行 sudo apt-get install ll…

【备考指南】数据分析备考资料

很多考生朋友在报名前后,一直不知道需要怎么备考,这里给大家盘点一下资料,希望对你有用: 1、cda数据分析师的硬技能与软技能:https://edu.cda.cn/goods/show/3604 2、机器学习驱动的金融风控:https://edu.…

windowns server2016服务器配置php调用powerpoint COM组件

解决问题:windowns server2016服务器配置php调用powerpoint COM组件 环境: windows server2016 宝塔(nginxmysqlphp7.2) IIS 搭建宝塔: 下载地址:https://www.bt.cn/download/windows.html ​ 安装使用&…

春招面试面经总结篇

目录 前言一,算法篇1.1 平拍数组1.2 括号匹配1.3 打家劫舍1.4 删除最少使字符串平衡1.5 爬楼梯 二,数据结构篇2.1 二叉树2.2 链表 三,HTML篇3.1 H5新的语义标签3.2 href和src 四,CSS篇4.1 居中4.2 父元素塌陷解决4.3 外边距塌陷4.…

藏在十九页PPT里的“海合安之道”

6月6日,成立仅仅两年多的海合安集团亮相2024中国主题公园战略营销峰会,作为本届峰会最年轻的主题公园企业,备受行业关注。 海合安集团成立于2021年,为亚洲最大私募投资基金之一的安博凯投资基金(MBK Partners&#xf…

开发一个python工具,pdf转图片,并且截成单个图片,然后修整没用的白边及循环遍历文件夹全量压缩图片

今天推荐一键款本人开发的pdf转单张图片并截取没有用的白边工具 一、开发背景: 业务需要将一个pdf文件展示在前端显示,但是基于各种原因,放弃了h5使用插件展示 原因有多个,文件资源太大加载太慢、pdf展示兼容性问题、pdf展示效果…

Git 常用命令,一文全搞懂

注意:每一次切换分支的时候,本地代码都会自动跟随改变,不需要重新pull,除非有人更新了代码 git remote add origin 地址 连接远程仓库 git clone 地址 克隆项目到本地 git init 更新本地隐藏文件初始化仓库 git add . 代…

周记-2024第25周

2024.6.12-2024.6.23 本周有什么新的收获和进步,总结一下。 记忆力下降的很快,即便是本周的日记,我在回看时,也发现很多都已经忘了。时间也是一样,如果时间日志上没有记录某个时间段做了什么,我发现第二天…

PayPal账号冻结原因及应对

在跨境领域,PayPal这种收款方式,可以说是如影随形,是很多跨境卖家和外贸B2B商户首选的收款方式,就和我们在国内使用某宝、某信一样常见。但使用PayPal收款,最头疼的就是遇到账户冻结以及各种审核,那出现这个…

python例子:翻译器(简单)

作品介绍 作品名称:翻译器 开发环境:PyCharm 2023.3.4 python3.7 用到的库:PyQt5、translate、sys 作品简介:“输入内容”输入要翻译的中文内容,“选择语言”选择要翻译的语种,最后点击“开始翻译”&a…

大模型中的Lang chain是什么意思

LangChain 是一个开源框架,旨在简化构建和操作由大型语言模型 (LLMs) 驱动的应用程序。它提供了一套工具和抽象,帮助开发者将多个语言模型集成到应用程序中,并简化了模型的管理、交互和扩展。 LangChain 的核心概念 Chain(链&…

基于轨迹加权的混合离线强化学习数据集

写在前面: 这篇论文阅读已经同步到我的博客网站,若需更优的阅读体验,请前往https://mainjaylai.github.io/Blog/blog/paper/trajectory-dataset进行浏览 摘要 大多数离线强化学习(RL)算法通过最大化目标策略的期望性…

品牌出海!独立站不仅是方向,而是成为跨境电商主流了

近些年,随着跨境电商3.0品牌出海和本土化时代的到来,独立站成为品牌出海的必备渠道和关键胜负手! 搭建独立站作为品牌本土化的最好展示载体,独立的品牌包装与产品页面,能够更好讲述品牌故事,因而得以快速发…