Java--Data类

news2024/10/6 20:30:15

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);
    }
}

​

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

 

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

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

相关文章

关于文章“python+百度语音识别+星火大模型+讯飞语音合成的语音助手”报错的修改

前言 关于我的文章:python百度语音识别星火大模型讯飞语音合成的语音助手,运行不起来的问题 文章地址: https://blog.csdn.net/Phillip_xian/article/details/138195725?spm1001.2014.3001.5501 1.报错问题 如果运行中报错,且…

Banded Grid Views

标注栏网格视图(BandedGridView)以表格形式显示数据,并将列组织到标注栏中。 Advanced Banded View(AdvBandedGridView)也有同样的功能,并额外支持数据单元格的复杂布局。 标注栏和列 BandedGridView和…

fyne的对话框

对话框 import "fyne.io/fyne/v2/dialog"dialog包 定义了应用程序GUI的标准对话框窗口。 NewError NewError()为应用程序错误在指定的窗口上创建一个对话框。该消息是从提供的错误中提取的(不应为nil)。创建后,您应该调用Show()…

pdf压缩大小,PDF压缩大小不影响清晰度

你是否曾为PDF文件过大而烦恼?想要分享或上传文件时,却因为它的体积而束手无策?别担心,今天我将为大家分享一些简单实用的 PDF 压缩技巧,让你的文件轻松压缩pdf。 打开“轻云处理pdf官网”, 的网站。然后上…

智慧校园-科研管理系统总体概述

在当前教育与科研深度融合的大潮中,智慧校园科研管理系统脱颖而出,它巧妙地融合了现代科技的力量,诸如云计算、大数据分析及人工智能技术,旨在为高等学府与科研机构打造一个高效运转、透明公开、促进协作的科研管理新生态。这一系…

LabVIEW操作系列

目的:初学LabVIEW,做记录 文章目录 前言一、LabVIEW操作界面1.1 新建vi1.2 控件1.3 加法案例 二、编程特点2.1 特点2.2 实现按顺序执行 三、程序结构3.1 平铺式顺序结构3.2 循环结构3.2.1 For循环3.2.2 While循环3.2.3 中途停止For循环3.2.4 中途停止Whi…

2023年零信任落地关键词:整合、身份、普及

2023年,全球企业纷纷加快了落地零信任的步伐。虽然落地的功能、落地的场景不尽相同,但企业对零信任的诉求、落地零信任的优先级却殊途同归,不同的零信任产品的应用场景也日益明晰。 全面整合和协同运行,是2023年企业用户对零信任…

同城跑腿小程序的崛起与用户体验革新

随着移动互联网的飞速发展,人们的生活方式正在发生深刻的变化。在这个快节奏的时代,时间成为了最宝贵的资源。在这样的背景下,同城跑腿小程序应运而生,以其高效、便捷的服务特性,迅速赢得了广大用户的青睐。本文将探讨…

仓库管理系统05--实现登录

1、创建登录的视图模型viewmodel 2、容器注册viewmodel 3、使用视图模型 4、登录命令 5、运行效果 原创不易,打字不易,截图不易,多多点赞,送人玫瑰,留有余香,财务自由明日实现。

怎么将图片压缩调小?在线压缩图片的4种快捷方法

压缩图片是日常很常用的一个图片处理功能,现在拍摄和制作的图片都比较大,在使用时经常会受到影响。在遇到无法上传、传输过慢的问题时会降低工作效率,所以掌握一招快速压缩图片是非常重要的。通过下面这篇文章来给大家介绍一下在线图片压缩的…

研二自学嵌入式开发,就业导向,学习路线该如何规划?

研二才来问这个问题,有点晚,离你开始找工作还有大概8~9个月,你应该用应试思维来应对找工作这个事,尤其当前这个经济形势下。 刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入…

鸣潮基于虚幻引擎4的多平台效果和性能优化实践

《鸣潮》基于虚幻引擎4的多平台效果和性能优化实践 | 王宏波 库洛游戏 文章目录 《鸣潮》基于虚幻引擎4的多平台效果和性能优化实践 | 王宏波 库洛游戏Why Deferred Shading移动端高质量的TAAU渲染流程Ghost和Flicker优化,一些图像空间算法的融入动静态像素的差异处…

复习2-20240624

vscode 使用 Javabean (封装性) public class Demo01 {/*1.原则 : 字母 数字 $ _ 中文 除了 这五个 其它都不可以2. 细则 : 数字 不能 开头%hbviunh &hfiureh )nhjrn 7487j -ni hbiu tgf hi…

数据结构-顺序表的插入排序

顺序表的排序可以看作数组排序的拓展。基本逻辑和数组排序的逻辑大同小异。 由于顺序表中可以存放不同种的数据类型,进而和结构体排序又有相似之处。其中要注意的是(->)和(.)的区别。 -> 符号是针对指针进行的操…

Dubbo本地调试解决方案

有三种方式:原文链接 本文尝试使用了原作者推荐的第二种方式,在启动本地的服务时加入全局版本号的参数 -Ddubbo.service.versiontest同时需要修改消费者侧API的版本号。 DubboReference(version "test")private IContentPortraitService contentPortra…

MySQL字典数据库设计与实现 ---项目实战

软件准备✍:Mysql与Navicat可视化命令大全 ----项目实战 文章前言部分 目录 一.摘要 二.设计内容 三.项目实现 一.摘要 本项目关注于字典数据库表结构的设计和数据管理。通过现有的sql文件,实现system_dict_type和system_dict_data两个数据表。随后…

iptables(8)iptables自定义链

简介 我们在前文所介绍的所谓规则都是在默认链中定义的,当默认链中的规则非常多时,比如INPUT链中存放了300条规则,这300条规则有httpd服务、sshd服务的、服务的、私网IP的、公网IP的等等,那么如果我要修改某个服务的规则,例如修改sshd服务的规则,那么在这么多条规则中找到…

如何用IDEA(2024版)从github上拉取一个项目

前置要求: 确保你已经安装了 IntelliJ IDEA。确保你已经安装了 Git 工具并配置好了环境变量。确保你有一个 GitHub 账户,并且你想要克隆的仓库可以被你访问。 具体步骤: 1. 打开 IntelliJ IDEA 启动 IntelliJ IDEA。如果这是你第一次启动…

python tqdm显示程序运行的进度

import time from tqdm import * for i in tqdm(range(100)):if i%2 0:print("未曾清贫难为人,不经挫折永天真。")time.sleep(.1) #进度条每0.1s前进一次,总时间为1000*0.1100selse:print("回首向来萧瑟处,归去&#xff0…

RabbitMQ使用手册

SpringCloud微服务 什么是微服务 维基百科:微服务是一种软件架构风格,它是以专注于单一职责的很多小型项目为基础,组合出复杂的大型应用。 微服务拆分 拆分目标 高内聚:每个微服务的职责要尽量单一,包含的业务相互…