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-11
        System.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转Date
        Date time = calendar.getTime();
        System.out.println(DateUtil.getSystemDateTime(time));
        //Date转成Calender
        Date 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()); //获取相差天数
        */
        //计算两个日期相差天数方法1
        long days = ChronoUnit.DAYS.between(date1, date2);
        System.out.println("days = " + days);
        //计算两个日期相差天数方法2
        long 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();
        //计算方式1
        Duration 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);*/
        //计算方式3
        long 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转成Date
        LocalDate 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转成LocalDate
        Date date4=new Date();
        ZonedDateTime zonedDateTime = date4.toInstant().atZone(ZoneId.systemDefault());
        LocalDate date5=zonedDateTime.toLocalDate();
        System.out.println(date5);

        //Date转成LocalDateTime
        Date date6=new Date();
        ZonedDateTime zonedDateTime = date6.toInstant().atZone(ZoneId.systemDefault());
        LocalDateTime date7=zonedDateTime.toLocalDateTime();
        LocalTime time=zonedDateTime.toLocalTime();
        System.out.println(date7);
    }
}

​

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

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

海外短剧系统,开启你的国际视野

一、海外短剧系统是一个创新且富有吸引力的平台,它能够为用户提供来自世界各地的精彩短剧,从而开启用户的国际视野。 1、文化多样性:海外短剧系统汇集了来自不同国家和地区的短剧作品,这些作品反映了各自独特的文化背景和社会风貌…

行业原型:智能资产管理平台-个人资产服务

​行业原型预览链接:(请与班主任联系获取原型文档) 文件类型:.rp 支持版本:Axrure RP 8 文档名称:金融:智能资产管理平台(个人资产服务) 文件大小:1.75 MB 智…

【功能详解】银河麒麟操作系统“安全启动”是如何发挥作用的?

2023年12月,财政部、工信部发布了7项信息类产品《政府采购需求标准》,为包括操作系统在内多项产品的政府集中采购提供政策支撑。其中,安全、可信作为国产操作系统的基本要求备受关注。 安全体系的构建离不开操作系统本身的硬实力&#xff0c…

Springboot 共享电动单车管理系统-计算机毕业设计源码08401

目 录 摘要 1 绪论 1.1背景及意义 1.2国内外研究概况 1.3研究方法 1.4论文结构与章节安排 2 共享电动单车管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分…

License简介和Licensecc的使用

License简介和Licensecc的使用 License简介什么是LIcense简易License制作加密扫盲对称加密非对称加密 Licensecc使用构建和编译在linux上进行编译UbuntuCentOS 7CentOS 8下载并编译配置编译和测试cmake 后可以跟的参数在Linux上为Windows进行交叉编译 在windos上进行编译MSVC (…

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

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

昇思25天学习打卡营第1天 | 快速入门

​ 今天开始学习Mindspore框架,首先需要引入数据集,以Mnist数据集为例: 处理数据集 # Download data from open datasets from download import downloadurl "https://mindspore-website.obs.cn-north-4.myhuaweicloud.com/" \&…

qt.qpa.xcb: could not connect to display问题解决

1、问题描述 以服务器pi5作为远程解释器,本地win11使用vscode远程调试视觉时报错如下: qt.qpa.xcb: could not connect to display qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "xxxxx" even though it was …

EasyExcel 无法读取图片?用poi写了一个工具类

在平时的开发中,经常要开发 Excel 的导入导出功能。一般使用 poi 或者 EasyExcel 开发,使用 poi 做 excel 比较复杂,大部分开发都会使用 EasyExcel 因为一行代码就能实现导入和导出的功能。但是 EasyExcel 不支持图片的读的操作,本…

CRMEB 多商户Java版v1.6公测版发布,付费会员上线,立即体验

新版本来袭!CRMEB 多商户Java版v1.6正式发布! 在v1.6新版本中,我们带来了付费会员体系,这将让商业模式更加灵活多元,新增加的移动端商家管理,也让运营触手可及,更加便捷,还有商家端员…

(2011-2022年) 全国各省快递业务量与快递业务收入面板数据

中国快递业近年来随着电子商务的蓬勃发展而迅速壮大,成为现代生活中不可或缺的一部分。快递业务量与收入的面板数据为我们提供了一个观察中国快递市场繁荣与多元化的窗口。 数据来源 中国统计年鉴 参考文献 胡润哲, 魏君英, 陈银娥. 数字经济发展对农村居民服务…

sheng的学习笔记-聚类(Clustering)

ai目录 sheng的学习笔记-AI目录-CSDN博客 基础知识 什么是聚类 在“无监督学习”(unsupervised learning)中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的数据分析提供基础。此类学…

智慧安防/边缘计算EasyCVR视频汇聚网关:EasySearch无法探测到服务器如何处理?

安防监控EasyCVR智能边缘网关/视频汇聚网关/视频网关属于软硬一体的边缘计算硬件,可提供多协议(RTSP/RTMP/国标GB28181/GAT1400/海康Ehome/大华/海康/宇视等SDK)的设备接入、音视频采集、视频转码、处理、分发等服务,系统具备实时…

都说HCIE“烂大街”了,说难考都是假的?

在网络技术领域,华为认证互联网专家(HCIE)长期以来被视为一项高端认证,代表着专业技能和知识水平。 然而,近几年来,考证的重视度直线上升,考HCIE的人越来越多了,考过的人好像也越来越…

桌面编辑器ONLYOFFICE 功能多样性快来试试吧!

目录 ONLYOFFICE 桌面编辑器 8.1 ONLYOFFICE介绍 主要功能和特点 使用场景 1.PDF编辑器 2.幻灯片版式 3.编辑,审阅和查看模式 4.隐藏连接到云版块 5.RTL语言支持和本地化选项 6.媒体播放器 7、其他新功能 8.下载 总结 ONLYOFFICE 桌面编辑器 8.1 官网地…

新火种AI|OpenAI CTO表示:未来将会有越来越多的人被AI所取代...

作者:小岩 编辑:彩云 对于“AI是否能最终取代人类进行工作”这件事儿,很多学者持有否定态度。大家普遍认为,即便如今诞生了ChatGPT,Claude等强大的AI工具,它们也只能够解决一些格式化,重复化的…

【力扣C++】爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示例 2&#x…

鸿蒙开发系统基础能力:【@ohos.hidebug (Debug调试)】

Debug调试 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 使用hidebug,可以获取应用内存的使用情况,包括应用进程的静态堆内存(native heap)信息…

想要将视频做二维码,试试这个方法吧

视频内容做成二维码用于分享内容的一种常用方式,而且通过二维码来分享视频内容与传统方式相比也更加的方便,用户只需要扫描二维码就可以观看视频内容,在很多的使用场景中的都有应用。那么如何操作能够快速制作一个视频二维码呢? …

算法设计与分析:动态规划法求扔鸡蛋问题 C++

目录 一、实验目的 二、问题描述 三、实验要求 四、算法思想和实验结果 1、动态规划法原理: 2、解决方法: 2.1 方法一:常规动态规划 2.1.1 算法思想: 2.1.2 时间复杂度分析 2.1.3 时间效率分析 2.2 方法二:动态规划加…