当前位置: 首页 > news >正文

日期类(java)

文章目录

  • 第一代日期类 Date
    • 常用构造方法
    • SimpleDateFormat 日期格式化类
      • 日期转字符串(String -> Date)
      • 字符串转日期 (String->Date)
  • 第二代日期类 Calendar
    • 常用字段与如何得到实例对象
    • 相关 API
  • 第三代日期类(LocalDate\TIme)
    • 日期,时间,日期时间
    • 日期时间格式化(DateTimeFormatter)
    • 时间戳
    • 计算时间(Time)对象间隔(Duration)
    • 计算日期(Date)对象间隔 (Period)
    • 日期(Date)矫正器(TemporalAdjusters)

第一代日期类 Date

常用构造方法

第一种:Date()
第二种:Date(long 毫秒)

public class Main {public static void main(String[] args) throws ParseException {//默认国外形式Date date = new Date();System.out.println(date);//创建了一个代表从1970年1月1日00:00:00 GMT开始后的1000毫秒的日期和时间。//但是输出 toString 的时候它会显示当前系统所在时区的时间。//因此,如果你的系统位于东八区(例如中国标准时间),那么输出将会是 "08:00:00"Date date1 = new Date(1000);System.out.println(date1);}
}

1000 是 一秒,1000 * 60 就是 60秒,1000 * 60 * 10 就是 10分钟



SimpleDateFormat 日期格式化类

在这里插入图片描述

在这里插入图片描述


日期转字符串(String -> Date)

用 String format(Date date) 方法转成字符串

public class Main {public static void main(String[] args) throws ParseException {Date date = new Date();//y:年份,M:年中月份,d:月中日期,F:星期, H:一天中的小时,m:小时中的分钟SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 星期F HH:mm");//转成字符串String date1 = sdf.format(date);//输出2024-06-28 星期 4 22:42System.out.println(date1);}
}

字符串转日期 (String->Date)

用 Date parse(String source) 转成 Date

public class Main {public static void main(String[] args) throws ParseException {String data = "2024-6-28 星期5 22:49";//格式和上面对不上会报 parseException 异常		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 星期F HH:mm");Date date = sdf.parse(data);System.out.println(data);}
}

格式和上面对不上会报 parseException 异常




第二代日期类 Calendar

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR, MONTH, DAY_OF_MONTH, HOUR 等 日期字段 之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法



常用字段与如何得到实例对象

在这里插入图片描述
Calender 没有专门的格式化方法,需要程序员自己组合

public class Main {public static void main(String[] args) throws ParseException {Calendar calendar = Calendar.getInstance();System.out.println(calendar);//底层是这样的:public static final int YEAR = 1;int year = calendar.get(1);int year2 = calendar.get(Calendar.YEAR);System.out.println(year);System.out.println(year2);}
}


相关 API

在这里插入图片描述

public class Main {public static void main(String[] args) throws ParseException {Calendar calendar = Calendar.getInstance();//把年设置成 2004calendar.set(Calendar.YEAR, 2004);System.out.println(calendar.get(Calendar.YEAR));//加一年calendar.add(Calendar.YEAR, -1);System.out.println(calendar.get(Calendar.YEAR));//关联日期String strDate = "2008-05-20 15:30:30";SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date = sdf.parse(strDate);calendar.setTime(date);System.out.println(calendar.get(Calendar.YEAR));}
}



第三代日期类(LocalDate\TIme)

JDK 8 加入的
LocalDate (日期/年月日),LocalTime (时间/时分秒),LocalDateTime (日期时间)

老日期类,线程不安全, 新的支持线程安全,建议直接用这个就行



日期,时间,日期时间

在这里插入图片描述

public class Main {public static void main(String[] args) throws ParseException {//获取当前日期LocalDateTime ldt = LocalDateTime.now();System.out.println(ldt);//获取指定日期时间LocalDateTime ldt2 = LocalDateTime.of(2024,6,29,10,10);System.out.println(ldt);//加减日期ldt2 = ldt2.plusYears(2).plusYears(-1);System.out.println(ldt2);//获取年int year = ldt2.getYear();System.out.println(year);}
}


日期时间格式化(DateTimeFormatter)

在这里插入图片描述
在这里插入图片描述

public class Main {public static void main(String[] args) throws ParseException {//LocalDateTime -> StringLocalDateTime localDateTime = LocalDateTime.now();DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");String s = dtf.format(localDateTime);System.out.println(s);//String -> LocalDateTimeString date = "2024-06-29";DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyy-MM-dd");//格式不对会抛 parse 异常LocalDate localDate =  LocalDate.parse(date, dtf2);System.out.println(localDate);}
}

如果是 LocalDateTime 必须要包含时间和日期



时间戳

时间戳:1970年1月1日零时零分零秒,到系统当前时间的总毫秒数

public class Main {public static void main(String[] args) throws ParseException {//获取系统当前时间(UTC:全球标准时间)Instant instant = Instant.now();//获取时间戳long cuo = instant.toEpochMilli();System.out.println(cuo);}
}


计算时间(Time)对象间隔(Duration)

在这里插入图片描述

public class Main {public static void main(String[] args) throws ParseException {LocalDateTime time1 = LocalDateTime.of(2024, 6,29,8,8);LocalDateTime time2 = LocalDateTime.of(2023, 5,27,8,8);//两时间对象相差对少天//后面 - 前面Duration duration = Duration.between( time2,time1);System.out.println(duration.toDays());//两时间相差多少天System.out.println(duration.toHours());}
}


计算日期(Date)对象间隔 (Period)

在这里插入图片描述

public class Main {public static void main(String[] args) throws ParseException {LocalDate localDate1= LocalDate.of(2007, 7,7);LocalDate localDate2 = LocalDate.of(2008, 7,7);Period between = Period.between(localDate1, localDate2);//相差年数System.out.println(between.getYears());}
}


日期(Date)矫正器(TemporalAdjusters)

public class Main {public static void main(String[] args) throws ParseException {//获取系统当前时间LocalDateTime now = LocalDateTime.now();//矫正时间LocalDateTime localDateTime = now.with(TemporalAdjusters.lastDayOfMonth());System.out.println(localDateTime);}
}

相关文章:

日期类(java)

文章目录 第一代日期类 Date常用构造方法SimpleDateFormat 日期格式化类日期转字符串(String -> Date)字符串转日期 (String->Date) 第二代日期类 Calendar常用字段与如何得到实例对象相关 API 第三代日期类(LocalDate\TIme)日期,时间&…...

【深度学习】C++ Tensorrt Yolov8 目标检测推理

C Tensorrt Yolov8 目标检测推理 模型导出代码yolov8.hyolov8.cppcommon.hppCMakeListmain.cpp C tensorrt对yolov8目标检测模型进行推理。 Windows版本下只需要修改common.hpp对文件的判断S_ISREG 和对文件夹的判断S_ISDIR即可,非核心代码,不调用删掉都…...

【项目日记(二)】搜索引擎-索引制作

❣博主主页: 33的博客❣ ▶️文章专栏分类:项目日记◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你了解更多项目内容 目录 1.前言2.索引结构2.1创捷索引2.2根据索引查询2.3新增文档2.4内存索引保存到磁盘2.5把…...

K 近邻、K-NN 算法图文详解

1. 为什么学习KNN算法 KNN是监督学习分类算法,主要解决现实生活中分类问题。根据目标的不同将监督学习任务分为了分类学习及回归预测问题。 KNN(K-Nearest Neihbor,KNN)K近邻是机器学习算法中理论最简单,最好理解的算法…...

Eclipse + GDB + J-Link 的单片机程序调试实践

Eclipse GDB J-Link 的调试实践 本文介绍如何创建Eclipse的调试配置,如何控制调试过程,如何查看修改各种变量。 对 Eclipse 的要求 所用 Eclipse 应当安装了 Eclipse Embedded CDT 插件。从 https://www.eclipse.org/downloads/packages/ 下载 Ecli…...

前端代码生成辅助工具

1,Axure Axure设计的界面如何生成HTML文件 https://blog.csdn.net/qq_43279782/article/details/112387511 Axure 生成HTML 文件,并用Chrome打开 https://blog.csdn.net/qq_30718137/article/details/80621025 2,OpenUI [开源] OpenUI …...

静态库与动态库总结

一、库文件和头文件 所谓库文件,可以将其理解为压缩包文件,该文件内部通常包含不止一个目标文件(也就是二进制文件)。 值得一提的是,库文件中每个目标文件存储的代码,并非完整的程序,而是一个…...

深入解析tcpdump:网络数据包捕获与分析的利器

引言 在网络技术日新月异的今天,网络数据包的捕获与分析成为了网络管理员、安全专家以及开发人员不可或缺的技能。其中,tcpdump作为一款强大的网络数据包捕获分析工具,广泛应用于Linux系统中。本文将从技术人的角度,详细分析tcpdu…...

【漏洞复现】科立讯通信有限公司指挥调度管理平台uploadgps.php存在SQL注入

0x01 产品简介 科立讯通信指挥调度管理平台是一个专门针对通信行业的管理平台。该产品旨在提供高效的指挥调度和管理解决方案,以帮助通信运营商或相关机构实现更好的运营效率和服务质量。该平台提供强大的指挥调度功能,可以实时监控和管理通信网络设备、…...

什么是自然语言处理(NLP)?详细解读文本分类、情感分析和机器翻译的核心技术

什么是自然语言处理? 自然语言处理(Natural Language Processing,简称NLP)是人工智能的一个重要分支,旨在让计算机理解、解释和生成人类的自然语言。打个比方,你和Siri对话,或使用谷歌翻译翻译一…...

【linux】gcc快速入门教程

目录 一.gcc简介 二.gcc常用命令 一.gcc简介 gcc 是GNU Compiler Collection(GNU编译器套件)。就是一个编译器。编译一个源文件的时候可以直接使用,但是源文件数量太多时,就很不方便,于是就出现了make 工具 二.gcc…...

【多维动态规划】Leetcode 97. 交错字符串【中等】

交错字符串 给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。 两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串 子字符串 是字符串中连续的 非空 字符序列。 s s1 s2 … snt…...

【JavaScript脚本宇宙】精通前端开发:六大热门CSS框架详解

前端开发的利器:深入了解六大CSS框架 前言 在现代Web开发中,选择适合的前端框架和工具包是构建高效、响应式和美观的网站或应用程序的关键。本文将详细介绍六个广受欢迎的CSS框架:Bootstrap、Bulma、Tailwind CSS、Foundation、Materialize…...

开发技术-Java集合(List)删除元素的几种方式

文章目录 1. 错误的删除2. 正确的方法2.1 倒叙删除2.2 迭代器删除2.3 removeAll() 删除2.4 removeIf() 最简单的删除 3. 总结 1. 错误的删除 在写代码时,想将其中的一个元素删除,就遍历了 list ,使用了 remove(),发现效果并不是想…...

c++ 递归

递归函数是指在函数定义中调用自身的函数。C语言也支持递归函数。 下面是一个使用递归函数计算阶乘的例子&#xff1a; #include <iostream> using namespace std;int factorial(int n) {// 基本情况&#xff0c;当 n 等于 0 或 1 时&#xff0c;阶乘为 1if (n 0 || n…...

RedHat9 | podman容器

1、容器技术介绍 传统问题 应用程序和依赖需要一起安装在物理主机或虚拟机上的操作系统应用程序版本比当前操作系统安装的版本更低或更新两个应用程序可能需要某一软件的不同版本&#xff0c;彼此版本之间不兼容 解决方式 将应用程序打包并部署为容器容器是与系统的其他部分…...

边缘计算项目有哪些

边缘计算项目在多个领域得到了广泛的应用&#xff0c;以下是一些典型的边缘计算项目案例&#xff1a; 1. **智能交通系统**&#xff1a;通过在交通信号灯、监控摄像头等设备上部署边缘计算&#xff0c;可以实时分析交通流量&#xff0c;优化交通信号控制&#xff0c;减少拥堵&…...

计算fibonacci数列每一项时所需的递归调用次数

斐波那契数列是一个经典的数列&#xff0c;其中每一项是前两项的和&#xff0c;定义为&#xff1a; [ F(n) F(n-1) F(n-2) ] 其中&#xff0c;( F(0) 0 ) 和 ( F(1) 1 )。 对于计算斐波那契数列的第 ( n ) 项&#xff0c;如果使用简单的递归方法&#xff0c;其时间复杂度是…...

【教学类65-05】20240627秘密花园涂色书(中四班练习)

【教学类65-03】20240622秘密花园涂色书03&#xff08;通义万相&#xff09;&#xff08;A4横版1张&#xff0c;一大 68张纸136份&#xff09;-CSDN博客 背景需求: 打印以下几款秘密花园样式&#xff08;每款10份&#xff09;给中四班孩子玩一下&#xff0c;看看效果 【教学类…...

Python 学习之基础语法(一)

Python的语法基础主要包括以下几个方面&#xff0c;下面将逐一进行分点表示和归纳&#xff1a; 一、基本语法 1. 注释 a. 单行注释&#xff1a;使用#开头&#xff0c;例如# 这是一个单行注释。 b. 多行注释&#xff1a;使用三引号&#xff08;可以是三个单引号或三个双引号&…...

日志分析-windows系统日志分析

日志分析-windows系统日志分析 使用事件查看器分析Windows系统日志 cmd命令 eventvwr 筛选 清除日志、注销并重新登陆&#xff0c;查看日志情况 Windows7和Windowserver2008R2的主机日志保存在C:\Windows\System32\winevt\Logs文件夹下&#xff0c;Security.evtx即为W…...

【ARM】MDK工程切换高版本的编译器后出现error A1137E报错

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决工程从Compiler 5切换到Compiler 6进行编译时出现一些非语法问题上的报错。 2、 问题场景 对于一些使用Compiler 5进行编译的工程&#xff0c;要切换到Compiler 6进行编译的时候&#xff0c;原本无任何报错警告…...

深入 SSH:解锁本地转发、远程转发和动态转发的潜力

文章目录 前言一、解锁内部服务&#xff1a;SSH 本地转发1.1 什么是 SSH 本地转发1.2 本地转发应用场景 二、打开外部访问大门&#xff1a;SSH 远程转发2.1 什么是 SSH 远程转发2.2 远程转发应用场景 三、动态转发&#xff1a;SSH 让你拥有自己的 VPN3.1 什么是 SSH 动态转发3.…...

python如何把一个函数的返回值,当成这个函数的参数值

python如何把一个函数的返回值&#xff0c;当成这个函数的参数值 1. 递归调用 递归是一种函数自己调用自己的方法。在递归调用中&#xff0c;你可以将前一次调用的返回值作为下一次调用的参数。 def recursive_function(x):# 函数逻辑if 条件满足:return 结果else:return rec…...

【融合ChatGPT等AI模型】Python-GEE遥感云大数据分析、管理与可视化及多领域案例应用

随着航空、航天、近地空间遥感平台的持续发展&#xff0c;遥感技术近年来取得显著进步。遥感数据的空间、时间、光谱分辨率及数据量均大幅提升&#xff0c;呈现出大数据特征。这为相关研究带来了新机遇&#xff0c;但同时也带来巨大挑战。传统的工作站和服务器已无法满足大区域…...

SpringBoot: Eureka入门

1. IP列表 公司发展到一定的规模之后&#xff0c;应用拆分是无可避免的。假设我们有2个服务(服务A、服务B)&#xff0c;如果服务A要调用服务B&#xff0c;我们能怎么做呢&#xff1f;最简单的方法是让服务A配置服务B的所有节点的IP&#xff0c;在服务A内部做负载均衡调用服务B…...

Typescript 【实用教程】(2024最新版)含类型声明,类型断言,函数,接口,泛型等

简介 TypeScript 是 JavaScript 的超集&#xff0c;是 JavaScript&#xff08;弱类型语言&#xff09; 的强类型版本。 拥有类型机制文件后缀 .tsTypescript type ES6TypeScript 和 JavaScript 的关系类似 less 和 css 的关系TypeScript对 JavaScript 添加了一些扩展&#x…...

智慧校园-实训管理系统总体概述

智慧校园实训管理系统&#xff0c;专为满足高等教育与职业教育的特定需求而设计&#xff0c;它代表了实训课程管理领域的一次数字化飞跃。此系统旨在通过革新实训的组织结构、执行流程及评估标准&#xff0c;来增强学生的实践操作技能和教师的授课效率&#xff0c;为社会输送具…...

如何用GPT开发一个基于 GPT 的应用?

原文发自博客&#xff1a;GPT应用开发小记 如何开发一个基于 GPT 的应用&#xff1f;答案就在问题里&#xff0c;那就是用 GPT 来开发基于 GPT 的应用。本文以笔者的一个开源项目 myGPTReader 为例&#xff0c;分享我是如何基于 GPT 去开发这个系统的&#xff0c;这个系统的功能…...

大数据生态体系中各组件的区别面试题(更新)

一、MapReduce与Spark有什么区别&#xff1f; 1、处理方式: MapReduce基于磁盘处理数据&#xff0c;将中间结果保存到磁盘中,减少了内存占用&#xff0c;计算速度慢。 基于内存处理数据&#xff0c;将计算的中间结果保存到内存中&#xff0c;计算速度快。2、资源申请方式&…...

wordpress博客联盟/找广告商的平台

大家好&#xff0c;我是时间财富网智能客服时间君&#xff0c;上述问题将由我为大家进行解答。手机数据线连接电视的方法是&#xff1a;1、首先电视机必须有HDMI接口&#xff0c;准备一条MHL线&#xff1b;一条HDMI高清数据连接线&#xff1b;2、将MHL线的一头插入手机的充电口…...

南昌网站改版/重庆seo网络优化师

成功解决xlsx表格内的时间格式数据显示为小数 目录 解决问题 解决方法 解决问题 xlsx表格内的时间格式数据显示为小数 解决方法...

网站 第三方登录/网络推广运营是做什么

此文将介绍4种实现动态障碍的方法&#xff0c;2种基于navmesh&#xff0c;2种基于astar算法。 1.基于navmesh。 1.制作场景障碍&#xff1a; a.有几个独立的障碍物&#xff0c;就定义几个user area&#xff0c;即&#xff0c;一个场景仅仅支持一个字节数目的独立障碍物 b.建立碰…...

wordpress代码生成器/营销文案

安装mysql后 执行无法进入 提示如下报错 在vim /etc/my.cnf skip-grant-tables 加入后 重启mysql : systemctl restart mysqld 后 即可...

wordpress+商业主题插件/百度推广业务电话

第一次作业 1、类设计 学期刚刚开始&#xff0c;我对于java&#xff0c;对于面向对象编程都是零基础。所以基本上面对第一次作业时首先需要解决的问题是学习java的语法以及eclipse的使用方法。对于程序的设计&#xff0c;还是停留在C语言式的面向过程的设计思路。在第一次作业中…...

福州 建站 软件/网络广告网站

使用layui的时候&#xff0c;动态生成一段数据&#xff1a; "<i classfa fa-clock-o fa-1g stylecolor: darkgrey; padding-left: 80px> "val.insertTime"</i> 想给这个 <i></i>标签加点击事件&#xff1a; 因为用的layui框架&#…...