日期类(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语言也支持递归函数。 下面是一个使用递归函数计算阶乘的例子: #include <iostream> using namespace std;int factorial(int n) {// 基本情况,当 n 等于 0 或 1 时,阶乘为 1if (n 0 || n…...
RedHat9 | podman容器
1、容器技术介绍 传统问题 应用程序和依赖需要一起安装在物理主机或虚拟机上的操作系统应用程序版本比当前操作系统安装的版本更低或更新两个应用程序可能需要某一软件的不同版本,彼此版本之间不兼容 解决方式 将应用程序打包并部署为容器容器是与系统的其他部分…...
边缘计算项目有哪些
边缘计算项目在多个领域得到了广泛的应用,以下是一些典型的边缘计算项目案例: 1. **智能交通系统**:通过在交通信号灯、监控摄像头等设备上部署边缘计算,可以实时分析交通流量,优化交通信号控制,减少拥堵&…...
计算fibonacci数列每一项时所需的递归调用次数
斐波那契数列是一个经典的数列,其中每一项是前两项的和,定义为: [ F(n) F(n-1) F(n-2) ] 其中,( F(0) 0 ) 和 ( F(1) 1 )。 对于计算斐波那契数列的第 ( n ) 项,如果使用简单的递归方法,其时间复杂度是…...
【教学类65-05】20240627秘密花园涂色书(中四班练习)
【教学类65-03】20240622秘密花园涂色书03(通义万相)(A4横版1张,一大 68张纸136份)-CSDN博客 背景需求: 打印以下几款秘密花园样式(每款10份)给中四班孩子玩一下,看看效果 【教学类…...
Python 学习之基础语法(一)
Python的语法基础主要包括以下几个方面,下面将逐一进行分点表示和归纳: 一、基本语法 1. 注释 a. 单行注释:使用#开头,例如# 这是一个单行注释。 b. 多行注释:使用三引号(可以是三个单引号或三个双引号&…...
金蝶云星空日常使用功能
1、必录和锁定和隐藏 2、取多少位字符 FMaterialId <> null AND ( FMaterialId.FNumber[0:3] in (321) or FMaterialId.FNumber[0:1] in (P)) 3、设定指定值...
RK3506开发板PWM输入捕获配置与调试实战指南
1. 项目概述:在RK3506上搞定PWM输入捕获最近在做一个工业网关项目,需要精确测量外部传感器发来的PWM信号频率和占空比,核心板选型正好落在了触觉智能的RK3506开发板上。这块板子接口丰富,性能也够用,但上手调试PWM输入…...
工业级RS-485收发器自主设计:从电路原理到PCB布局的实战指南
1. 项目概述与核心价值 在工业自动化、楼宇控制、能源监控这些领域里,设备之间要“说话”,RS-485总线绝对是那个最可靠、最耐用的“方言”。你可能在PLC、变频器、智能电表或者一堆传感器上见过那两个标着A、B的端子,背后驱动它们的ÿ…...
广东公考机构全景测评:粉笔凭极致性价比与本土教研实力领跑
随着2026年广东省考备考热潮的持续升温,选择一家靠谱的培训机构成为广大考生关注的焦点。在广东这片公考竞争激烈的热土上,除了粉笔、华图和中公三大巨头,以笨鸟教育、及第林教育为代表的本土精品机构也凭借极强的地域针对性异军突起。本次测…...
嵌入式游戏开发实战:在4x8 LED点阵上用CircuitPython复刻FlappyBird
1. 项目概述:在4x8的像素矩阵上“复活”FlappyBird如果你玩过嵌入式开发,尤其是用那些小巧的微控制器板子,可能会觉得游戏开发离它们很远——资源有限,没有图形库,怎么搞?但恰恰是这种限制,最能…...
FigmaCN中文插件:5分钟让Figma界面变中文的终极解决方案
FigmaCN中文插件:5分钟让Figma界面变中文的终极解决方案 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面而烦恼吗?每次寻找工具都要在脑海…...
AI赋能的两种逻辑企业如何选?:从「AI+行业」
在人工智能全面重构产业格局的今天,用不用 AI 已经不是问题,怎么用 AI 才是生死关键。同样是布局 AI,有的企业只实现小幅增效,有的企业却直接颠覆行业、重塑价值链。 核心差距,就在于选择了 「AI 行业」的加法逻辑&am…...
Tmux智能代理:用Emoji可视化终端状态,提升开发效率与情境感知
1. 项目概述:一个让终端会话“活”起来的智能代理 如果你和我一样,每天有超过8小时的时间“泡”在终端里,与tmux、vim和各种命令行工具打交道,那你一定理解那种感觉——屏幕上是冰冷的文本、闪烁的光标和单调的日志输出。长时间面…...
基于本地大语言模型与小米设备协议构建私有化智能家居AI控制中枢
1. 项目概述:一个为小米设备打造的本地化AI大脑最近在折腾智能家居,特别是小米生态链的设备,发现一个挺有意思的痛点:虽然小爱同学用起来很方便,但很多高级的、定制化的智能场景,要么得在米家App里做复杂的…...
Arm Neoverse CMN-650架构与编程实践详解
1. CMN-650架构概述Arm Neoverse CMN-650是一种基于Mesh拓扑的一致性互连网络,专为多核处理器和加速器系统设计。作为SoC内部的数据高速公路,它通过优化的路由算法和一致性协议,实现了高带宽、低延迟的核间通信。1.1 核心组件解析CMN-650由多…...
