日期与时间(Java)

文章目录

    • 日期与时间(Java)
      • 一、JDK8之前的
        • 1.1 Date
        • 1.2 SimpleDateFormat
        • 1.3 Calendar
      • 二、 JDK8之后的
        • 2.1 LocalDate、LocalTime和LocalDateTime
        • 2.2 ZoneId和ZonedDateTime
        • 2.3 Instant
        • 2.4 DateTimeFormatter
        • 2.4 Period和 Duration
      • 🎉写在最后

日期与时间(Java)

hello hello~ ,这里是 code袁~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹
在这里插入图片描述
💥个人主页:code袁
💥 所属专栏:Java

一、JDK8之前的

1.1 Date

Date 代表获取当前此时此刻的时间

1.构建日期对象

  Date date=new Date();
  System.out.println(date);

结果

Fri Mar 15 23:37:24 GMT+08:00 2024

2.获取毫秒值

  Date date=new Date();
   System.out.println(date.getTime());

结果

1710517044440

3.毫秒值转化为时间

   long time=date.getTime();
    Date d2=new Date(time);
    System.out.println(d2);
1.2 SimpleDateFormat

格式化、解析时间的
注意: 解析时间的格式必须与被解析时间的格式一模一样,否则报错!

1.日期的格式化

   Date date=new Date();
   SimpleDateFormat sf= new SimpleDateFormat("YYYY-MM-dd HH:mm:ss EEE a");
   System.out.println(sf.format(date));

结果

2024-03-15 23:37:24 星期五 下午

2.字符串时间解析成日期对象

  String start="2023年11月11日 0:0:0";
  SimpleDateFormat spf= new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
  Date startDt= spf.parse(start);

结果

Sat Nov 11 00:00:00 GMT+08:00 2023
1.3 Calendar

代表日历,获取信息更丰富

1.日历对象

 Calendar now=Calendar.getInstance();
 System.out.println(now);

结果

ava.util.GregorianCalendar[time=1710517971008,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2024,MONTH=2,WEEK_OF_YEAR=11,WEEK_OF_MONTH=3,DAY_OF_MONTH=15,DAY_OF_YEAR=75,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=11,HOUR_OF_DAY=23,MINUTE=52,SECOND=51,MILLISECOND=8,ZONE_OFFSET=28800000,DST_OFFSET=0]

2.获得日期

 Calendar now=Calendar.getInstance();
 System.out.println(now.getTime());

3.获得毫秒值

Calendar now=Calendar.getInstance();
 System.out.println(now.getTimeInMillis());

4.修改日期

Calendar now=Calendar.getInstance();
now.add(Calendar.DAY_OF_YEAR,100); 
System.out.println(now.get(Calendar.MONTH));

二、 JDK8之后的

2.1 LocalDate、LocalTime和LocalDateTime

LocalDate、LocalTime和LocalDateTime在语法上基本一致。
LocalDate获取年 月 日
LocalTime获取时 分 秒 纳秒
LocalDateTime获取年 月 日 时 分 秒 纳秒

1.获取本地日期对象

  LocalDate ld=LocalDate.now();

  System.out.println(ld);

2.获取具体的

        int year=ld.getYear();
        int month=ld.getMonthValue();
        int day=ld.getDayOfYear();
        //一年中第几天
        int dayOfYear=ld.getDayOfYear();
        //星期几
        int dayOfWeek=ld.getDayOfWeek().getValue();
        System.out.println(dayOfYear+"-----"+dayOfWeek);
2024-03-16
76-----6

3.基本操作

//修改 withYear withMonth,withDyofMonth
        LocalDate d2= ld.withYear(2028);  //修改的值在d2中
        System.out.println(d2.getYear());

        //加 plusYears plusMonth
        LocalDate d3=ld.plusYears(2);
        System.out.println(d3);

        //减 minusYears
        LocalDate d4=ld.minusYears(4);
        System.out.println(d4);

        //获取指定日期
        LocalDate d5=LocalDate.of(2035,05,12);
        System.out.println(d5);

        //判断日期对象
        System.out.println(d5.equals(d4));  //判断是否相等
        System.out.println(d5.isAfter(d4)); //判断是否在后
        System.out.println(d5.isBefore(d4)); //判断是否在前
2.2 ZoneId和ZonedDateTime

ZonedDateTime获取时区的时间
ZoneId 获取时区

 //zoneId 时区
        ZoneId zoneId= ZoneId.systemDefault();
        System.out.println(zoneId.getId());


        //带时区的时间
        ZonedDateTime now=ZonedDateTime.now();
        System.out.println(now);

        //获取标准时间
        ZonedDateTime now1=ZonedDateTime.now(Clock.systemUTC());
        System.out.println(now1);

        //系统默认时间
        ZonedDateTime now2=ZonedDateTime.now();
        System.out.println(now2);

        System.out.println(now2.getYear());
2.3 Instant
//创建Instant对象 不可变对象
        Instant It=Instant.now();
        System.out.println(It);

        //获取总秒数
        long second=It.getEpochSecond();
        System.out.println(second);

        //不够1秒的纳秒数
        int nano=It.getNano();
        System.out.println(nano);
2.4 DateTimeFormatter

对日期进行格式化

      //日期格式化
        DateTimeFormatter dtf=DateTimeFormatter.ofPattern("yyyy年mm月dd日 HH:mm:ss");
        
        LocalDateTime ldt5=LocalDateTime.now();

        System.out.println(dtf.format(ldt5));
        
        //解析时间
        String date ="2024年14月17日 00:14:17";
        LocalDateTime ldt6=LocalDateTime.parse(date,dtf);
        System.out.println(ldt6);
2.4 Period和 Duration

Period计算两个日期间隔的年数,月数,天数
Duration计算两个日期间隔的时,分,秒

  //日期间隔
        LocalDate start=LocalDate.of(2028,05,23);
        LocalDate end=LocalDate.of(2024,11,20);

       //创建period对象
        Period period=Period.between(end,start);


        System.out.println(period.getYears());
        System.out.println(period.getMonths());
        System.out.println(period.getDays());

        LocalDateTime t1=LocalDateTime.of(2028,05,23,11,11,11);
        LocalDateTime t2=LocalDateTime.of(2024,11,20,12,12,13);
        //获取间隔时 分 秒
        Duration duration=Duration.between(t2,t1);

        //间隔对象间隔信息
        System.out.println(duration.toDays());
        System.out.println(duration.toHours());
        System.out.println(duration.toMinutes());
        System.out.println(duration.toMillis());

🎉写在最后

🍻伙伴们,如果你已经看到了这里,觉得这篇文章有帮助到你的话不妨点赞👍或 Star ✨支持一下哦!手动码字,如有错误,欢迎在评论区指正💬~

你的支持就是我更新的最大动力💪~

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

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

相关文章

数据结构:详解【链表】的实现(单向链表+双向链表)

目录 一,前言二 ,有关链表的概念,结构和分类三,无头单向非循环链表(单链表)1.单链表的功能2.单链表功能的实现3.完整代码 四,带头双向循环链表(双链表)1.单链表与双链表的…

YOLOv9改进策略:注意力机制 | 归一化的注意力模块(NAM)

💡💡💡本文改进内容: NAM作为一种高效且轻量级的注意力机制。采用了CBAM的模块集成并重新设计了通道和空间注意子模块。 yolov9-c-NAMAttention summary: 965 layers, 51000614 parameters, 51000582 gradients, 238.9 GFLOPs 改…

Java基础 - 9 - 集合进阶(二)

一. Collection的其他相关知识 1.1 可变参数 可变参数就是一种特殊形参,定义在方法、构造器的形参列表里,格式是:数据类型…参数名称; 可变参数的特点和好处 特点:可以不传数据给它;可以传一个或者同时传多个数据给…

html中如何让网页禁用右键禁止查看源代码

在网页中,辛辛苦苦写的文章,被别人复制粘贴给盗用去另很多站长感到非常无奈,通常大家复制都会使用选取右键复制,或CTRLC等方式,下面介绍几种禁止鼠标右键代码,可减少网页上文章被抄袭的几率,当然…

Day38:安全开发-JavaEE应用SpringBoot框架MyBatis注入Thymeleaf模版注入

目录 SpringBoot-Web应用-路由响应 SpringBoot-数据库应用-Mybatis SpringBoot-模版引擎-Thymeleaf 思维导图 Java知识点 功能:数据库操作,文件操作,序列化数据,身份验证,框架开发,第三方库使用等. 框架…

PyTorch学习笔记之激活函数篇(二)

文章目录 2、Tanh函数2.1 公式2.2 对应的图像2.3 对应生成图像代码2.4 优点与不足2.5 torch.tanh()函数 2、Tanh函数 2.1 公式 Tanh函数的公式: f ( x ) e x − e − x e x e − x f(x)\frac{e^x-e^{-x}}{e^xe^{-x}} f(x)exe−xex−e−x​ Tanh函数的导函数&am…

idea找不到或无法加载主类

前言 今天在运行项目的时候突然出了这样一个错误:IDEA 错误 找不到或无法加载主类,相信只要是用过IDEA的朋友都 遇到过它吧,但是每次遇到都是一顿焦头烂额、抓耳挠腮、急赤白咧!咋整呢?听我给你吹~ 瞧我这张嘴~ 问题报错 找不…

C++之类(持续更新)

1、类的基础知识点 1.1、类和对象 和C中的结构体不同,在C类中不仅可以定义变量,也可以定义函数。【在C结构体中也可以定义变量和函数,但是一般情况下都使用类】。 类的成员属性默认都是private;结构体的成员属性默认都是public。…

利用express从0到1搭建后端服务

目录 步骤一:安装开发工具步骤二:安装插件步骤三:安装nodejs步骤四:搭建启动入口文件步骤五:启动服务器总结 在日常工作中,有很多重复和繁琐的事务是可以利用软件进行提效的。但每个行业又有自己的特点&…

特殊文件——属性文件、XML文件

目录 特殊文件 ——属性文件、XML文件 特殊文件的作用 需要掌握的知识点 Properties文件 ​编辑 构造器与方法​编辑 使用Properties 把键值对数据写出到属性文件中 ​编辑 XML文件​编辑 XML文件的作用和应用场景 解析XML文件 使用Dom4J框架解析出XML文件——下载…

EXCEL+PYTHON学习3

1) 遍历一个SHEET,无非就是两个循环,rows属性是取得所有行。 fn data3_16.xlsx wb openpyxl.load_workbook(fn) ws wb.active for row in ws.rows:for cell in row:print(cell.value, end )print() 2) 返回工作表的最小行数…

TCP/IP协议栈

TCP/IP协议栈(Transmission Control Protocol/Internet Protocol Suite)是互联网上进行数据通信的一系列网络协议的集合,它是现代计算机网络通信的基础架构。 它由多个不同的协议层构成,每层负责不同层面的数据处理和传输工作&…

PyQt5使用

安装Pyqt5信号与槽使用可视化界面编辑UI (Pyside2)ui生成之后的使用(两种方法)1 ui转化为py文件 进行import2 动态调用UI文件 安装Pyqt5 pip install pyqt5-tools这时候我们使用纯代码实现一个简单的界面 from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButto…

LabVIEW湍流等离子体束热效率优化

LabVIEW湍流等离子体束热效率优化 利用LabVIEW虚拟仪器技术,对湍流等离子体束的热效率进行了实时监测与优化,提高其在材料处理领域的应用效率和精度。通过双进气湍流等离子体发生器,实现了在不同工作参数下对热效率的实时在线监测&#xff0…

openssl3.2 - note - Writing OpenSSL Provider Skeleton

文章目录 openssl3.2 - note - Writing OpenSSL Provider Skeleton概述笔记测试工程的建立复现的provider工程总结Provider包含的头文件openssl/core.h中的数据结构实现 OSSL_provider_init()看一下openssl自带的提供者provider的openssl命令行测试provider的本质是hook了opens…

RabbitMQ高级-高级特性

1.消息可靠性传递 在使用RabbitMQ的时候,作为消息发送方希望杜绝任何消息丢失或者投递失败场景。RabbitMQ为我们提供了两种方式来控制消息的投递可靠性模式 1.confirm 确认模式 确认模式是由exchange决定的 2.return 退回模式 回退模式是由routing…

数据结构-红黑树

1.容器 容器用于容纳元素集合,并对元素集合进行管理和维护. 传统意义上的管理和维护就是:增,删,改,查. 我们分析每种类型容器时,主要分析其增,删,改&#xff…

NFTScan 正式上线 Blast NFTScan 浏览器和 NFT API 数据服务

2024 年 3 月 15 号,NFTScan 团队正式对外发布了 Blast NFTScan 浏览器,将为 Blast 生态的 NFT 开发者和用户提供简洁高效的 NFT 数据搜索查询服务。NFTScan 作为全球领先的 NFT 数据基础设施服务商,Blast 是继 Bitcoin、Ethereum、BNBChain、…

wifi7有哪些新特性?看这份文档

更多内容在 这是H3C发布的关于wifi7的介绍文档。 回顾802.11协议发展历程,初版802.11协议速率仅为2Mbps。802.11b使用新的编码形式,将速 率提升到11Mbps。802.11a利用新的5GHz频段,引入OFDM技术并采用64-QAM调制将无线速 率提升到54Mbps。80…

sqllab第二十六关通关笔记

知识点: 空格替换 %09 %0a %0b %0c %0d %a0 (%2b)or替换:|| ||是不需要空格区分的and替换:&& &&同样不需要空格区分的双写绕过,但是绕过后需要和内容进行空格区分的,要不然不发挥作用;这关…