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

Java 日期时间API(Java 8及以上)

Java 8及以上版本提供了新的日期时间API,其中包括了LocalDate、LocalTime、LocalDateTime、ZonedDateTime、Duration、Period等类,这些类提供了更加丰富和灵活的日期时间操作方法。

LocalDate

LocalDate类表示一个本地日期,不包含时间和时区信息。LocalDate类的实例可以通过now()方法获取当前日期,也可以通过of()方法根据指定的年月日创建一个实例。

// 获取当前日期
LocalDate today = LocalDate.now();
System.out.println("今天的日期是:" + today);// 创建一个指定日期的LocalDate实例
LocalDate birthday = LocalDate.of(1990, 10, 1);
System.out.println("生日是:" + birthday);

LocalDate类提供了一系列的getXXX()方法,可以获取指定日期的年、月、日等信息,也提供了一些withXXX()方法和plusXXX()方法,可以修改和计算日期。

// 获取年、月、日
int year = today.getYear();
int month = today.getMonthValue();
int day = today.getDayOfMonth();
System.out.printf("今天是%d年%d月%d日%n", year, month, day);// 计算指定日期加上一周后的日期
LocalDate nextWeek = today.plusWeeks(1);
System.out.println("一周后的日期是:" + nextWeek);

LocalTime

LocalTime类表示一个本地时间,不包含日期和时区信息。LocalTime类的实例可以通过now()方法获取当前时间,也可以通过of()方法根据指定的时分秒创建一个实例。

// 获取当前时间
LocalTime now = LocalTime.now();
System.out.println("现在的时间是:" + now);// 创建一个指定时间的LocalTime实例
LocalTime time = LocalTime.of(14, 30, 0);
System.out.println("指定的时间是:" + time);

Java 日期时间的格式化

在实际应用中,我们常常需要将日期时间格式化为字符串,或者将字符串解析为日期时间。Java 提供了 SimpleDateFormat 类来实现日期时间格式化。下面是一个示例代码:

import java.text.SimpleDateFormat;
import java.util.Date;public class DateTimeFormatExample {public static void main(String[] args) {// 创建日期时间格式化对象SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 获取当前日期时间Date date = new Date();// 将日期时间格式化为字符串String formattedDateTime = dateFormat.format(date);// 输出格式化后的日期时间字符串System.out.println(formattedDateTime);}
}

上面的示例代码中,我们首先创建了一个 SimpleDateFormat 对象,并指定日期时间格式为 "yyyy-MM-dd HH:mm:ss"。然后获取当前日期时间,并将其格式化为字符串。最后输出格式化后的日期时间字符串。

除了将日期时间格式化为字符串外,我们还可以将字符串解析为日期时间。下面是一个示例代码:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;public class DateTimeParseExample {public static void main(String[] args) {// 创建日期时间格式化对象SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 定义日期时间字符串String dateTimeString = "2022-03-08 10:30:00";try {// 将日期时间字符串解析为日期时间对象Date dateTime = dateFormat.parse(dateTimeString);// 输出解析后的日期时间对象System.out.println(dateTime);} catch (ParseException e) {System.out.println("日期时间解析出错:" + e.getMessage());}}
}

上面的示例代码中,我们同样创建了一个 SimpleDateFormat 对象,并指定日期时间格式为 "yyyy-MM-dd HH:mm:ss"。然后定义了一个日期时间字符串 "2022-03-08 10:30:00"。最后使用 SimpleDateFormat 的 parse() 方法将日期时间字符串解析为日期时间对象,并输出解析后的日期时间对象。

Java 日期时间的计算

在实际应用中,我们经常需要对日期时间进行加减操作。Java 提供了 Date 类和 Calendar 类来实现日期时间的加减操作。下面是一个示例代码:

import java.util.Calendar;
import java.util.Date;public class DateTimeCalculationExample {public static void main(String[] args) {// 创建 Calendar 对象Calendar calendar = Calendar.getInstance();// 获取当前日期时间Date date = calendar.getTime();// 输出当前日期时间System.out.println("当前日期时间:" + date);// 在当前日期时间上加上一天calendar.add(Calendar.DATE, 1);// 获取加上一天后的日期时间Date tomorrow = calendar.getTime();// 输出加上一天后的日期时间System.out.println("明天的日期时间:" + tomorrow);}
}

上面的示例代码中,我们首先创建了一个 Calendar 对象,并使用 getInstance() 方法获取当前日期时间。然后输出当前日期时间。接着使用 add() 方法在当前日期时间上加上一天,并获取加上一天后可以使用DateTimeFormatter类将日期时间对象格式化为字符串。这个类提供了很多不同的格式选项,例如使用不同的日期和时间格式、时区等。下面是一个简单的例子:

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;public class DateTimeExample {public static void main(String[] args) {LocalDateTime now = LocalDateTime.now();DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");String formattedDateTime = now.format(formatter);System.out.println(formattedDateTime);}
}

在这个例子中,我们使用LocalDateTime.now()方法创建了一个表示当前日期和时间的LocalDateTime对象。然后,我们创建了一个DateTimeFormatter对象,并使用ofPattern()方法指定了日期时间格式。在这个例子中,我们选择了常见的格式"yyyy-MM-dd HH:mm:ss",它表示年份、月份、日期、小时、分钟和秒,中间用破折号和冒号分隔。最后,我们使用format()方法将LocalDateTime对象格式化为字符串,并将其打印出来。

除了格式化日期时间对象,Java 8还引入了一些新的日期时间类,例如LocalDateLocalTimeZonedDateTime,它们提供了更多的日期时间处理选项。例如,LocalDate类表示日期(年、月、日),LocalTime类表示时间(小时、分钟、秒)。

以下是一个使用LocalDateLocalTime类的简单示例:

import java.time.LocalDate;
import java.time.LocalTime;public class DateExample {public static void main(String[] args) {LocalDate date = LocalDate.now();LocalTime time = LocalTime.now();System.out.println("Today's date is: " + date);System.out.println("The time is: " + time);}
}

在这个例子中,我们使用LocalDate.now()LocalTime.now()方法创建了表示当前日期和时间的对象。然后,我们分别将它们打印出来。

总之,Java提供了强大的日期时间处理功能,包括基本的日期时间类和格式化工具,以及更多高级的日期时间类。这些工具在许多实际的开发任务中都是必不可少的,熟练掌握它们,有助于我们更好的进行开发。

相关文章:

Java 日期时间API(Java 8及以上)

Java 8及以上版本提供了新的日期时间API,其中包括了LocalDate、LocalTime、LocalDateTime、ZonedDateTime、Duration、Period等类,这些类提供了更加丰富和灵活的日期时间操作方法。 LocalDate LocalDate类表示一个本地日期,不包含时间和时区…...

DHCP的配置

实验目的熟悉DHCP的应用场景掌握DHCP的配置方法实验拓扑DHCP的配置如图15-2所示: 图15-2:DHCP的配置 实验步骤配置IP地址<Huawei>system-view Enter system view, return user view with Ctrl+Z....

JavaWeb14-线程池

目录 1.传统线程的缺点 2.线程池的定义 3.线程池的优点 4.线程池的创建/使用&#xff08;2类7种&#xff09; 4.1.通过Executors&#xff08;执行器&#xff09;自动创建&#xff08;6种&#xff09; ①Executors.newFixedThreadPool&#xff1a;创建⼀个固定⼤⼩的线程池…...

[qiankun+nuxt]子应用请求本地文件报错404

前言 目前公司的前端架构是qiankunnuxt做的微前端项目 问题说明 在子应用中&#xff0c;前端需要模拟一些数据&#xff0c;方便后期演示调整而不需要重新打包 所以将一些数据存储到了本地的json文件中&#xff0c;但是获取时报了404的错误&#xff0c;找不到该文件。 页面报错…...

【Qt网络编程】实现TCP协议通信

文章目录概要&#xff1a;本期主要讲解QT中对于TCP协议通信的实现。一、TCP协议二、Qt中TCP协议处理1.QTcpSocket2.QTcpServer三、Qt实现TCP通信1.客户端2.服务器端结尾概要&#xff1a;本期主要讲解QT中对于TCP协议通信的实现。 一、TCP协议 传输控制协议&#xff08;TCP&am…...

Webpack打包———处理样式资源

基本使用 本质上&#xff0c;webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时&#xff0c;它会在内部从一个或多个入口点构建一个 依赖图(dependency graph)&#xff0c;然后将你项目中所需的每一个模块组合成一个或多个 bundles&a…...

VP记录:Codeforces Round 857 (Div. 2) A~D

传送门:CF A题 Likes: 这道题的题意很变态,十分的难懂,简直就是一坨shit,这场比赛最后被骂是有原因的 简单来说就是对于一个项目,每一个人都能对此加一或者减一,最后问你这个项目每一时刻最大和最小是多少.题目中只说明了只能点赞后才能取消,并没有解释存在取消操作必存在点…...

Docker常用项目实战演练

docker镜像源的修改 linux环境下编辑 /etc/docker/daemon.json vi /etc/docker/daemon.json #如添加如下网易镜像源 { "registry-mirrors": ["http://hub-mirror.c.163.com"] }docker run命令详细解释 日常工作中用的比较多的是docker run命令&#xff…...

Linux进程间通信-FIFO命名管道

Linux进程间通信-FIFO命名管道 1、概述 管道因为没有名称&#xff0c;所以只用于进程间的亲缘通信。为了克服这一缺点&#xff0c;提出了命名管道(FIFO)&#xff0c;又称命名管道、FIFO文件。 FIFO不同于无名管道&#xff0c;它提供与之关联的路径名&#xff0c;该路径名以FIF…...

【Kafka】记录一次基于connect-mirror-maker做的Kafka集群迁移完整过程

文章目录背景环境工具选型实操MM1MM2以MM2集群运行以Standalone模式运行验证附录MM2配置表其他背景 一个测试环境的kafka集群&#xff0c;Topic有360&#xff0c;Partition有2000&#xff0c;部署在虚拟机上&#xff0c;由于多方面原因&#xff0c;要求迁移至k8s容器内&#x…...

实现VOC数据集与COCO数据集格式转换

实现VOC数据集与COCO数据集格式转换2、将voc数据集的xml转化为coco数据集的json格式2、COCO格式的json文件转化为VOC格式的xml文件3、将 txt 文件转换为 Pascal VOC 的 XML 格式<annotation><folder>文件夹目录</folder><filename>图片名.jpg</file…...

常用的密码算法有哪些?

我们将密码算法分为两大类。 对称密码&#xff08;密钥密码&#xff09;——算法只有一个密钥。如果多个参与者都知道该密钥&#xff0c;该密钥 也称为共享密钥。非对称密码&#xff08;公钥密码&#xff09;——参与者对密钥的可见性是非对称的。例如&#xff0c;一些参与者仅…...

SNS (Simple Notification Service)简介

SNS (Simple Notification Service) 是一种完全托管的发布/订阅消息收发和移动通知服务&#xff0c;用于协调向订阅终端节点和客户端的消息分发。 和SQS (Simple Queue Service)一样&#xff0c;SNS也可以轻松分离和扩展微服务&#xff0c;分布式系统和无服务应用程序&#xf…...

JVM初步理解浅析

一、JVM的位置 JVM的位置 JVM在操作系统的上一层&#xff0c;是运行在操作系统上的。JRE是运行环境&#xff0c;而JVM是包含在JRE中 二、JVM体系结构 垃圾回收主要在方法区和堆&#xff0c;所以”JVM调优“大部分也是发生在方法区和堆中 可以说调优就是发生在堆中&#xf…...

【巨人的肩膀】MySQL面试总结(一)

&#x1f4aa; 目录&#x1f4aa;1、什么是ER图2、数据库范式了解吗3、超键、候选键、主键、外键分别是什么&#xff1f;4、为什么不推荐使用外键与级联5、什么是存储过程6、drop、delete与truncate区别7、数据库设计通常分为那几步8、什么是关系型数据库9、什么是SQL10、MySQL…...

【数据结构之树】——什么是树,树的特点,树的相关概念和表示方法以及在实际的应用。

文章目录一、1.树是什么&#xff1f;2.树的特点二、树的相关概念三、树的表示方法1.常规方法表示树2.使用左孩子右兄弟表示法3. 使用顺序表来存储父亲节点的下标三、树在实际的应用总结一、1.树是什么&#xff1f; 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n&…...

JavaScript语法

文章目录一、JavaScript是什么&#xff1f;JavaScript引入方式二、基础语法书写语法输出语句变量数据类型运算符流程控制语句数组函数JS变量作用域对象一、JavaScript是什么&#xff1f; JavaScript&#xff1a;是一门跨平台的脚本语言&#xff0c;用来控制网页行为&#xff0…...

【BIOS/UEFI】HII 基本框架及概述

HII&#xff08;Human Interface Infrastructure &#xff09;定义了一套管理用户输入的基础框架。HII数据库主要提供用户安装、卸载以及使用各种字符串、字体和图片等资源的接口。 HID Devices 是用户输入设备&#xff0c;如键盘、串口和网络&#xff1b;Display Devices 是输…...

sprintf(...)溢出边界导致程序崩溃的问题

文章目录小结问题及解决参考小结 使用sprintf(...)进行格式化是一种标准的做法&#xff0c;但是这样做是有一个极大的风险&#xff0c;由于sprintf(...)不进行边界检查&#xff0c;这样会有写操作溢出边界的风险&#xff0c;并导致程序崩溃。本文进行了简单写操作溢出边界的测…...

公式推导+dfs简版

写在前面的话&#xff1a;心可以冷&#xff0c;但手不能停 第一题&#xff1a;C. Flexible String 题目大意&#xff1a;给一个aaa字符串和bbb字符串和数字kkk&#xff0c;首先设置一个计数器cntcntcnt,其中可以对aaa字符串做以下操作&#xff1a;替换aaa中的一个字母xxx&#…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1&#xff09;准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2&#xff09;服务端安装软件&#xff1a;bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

(一)单例模式

一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...

恶补电源:1.电桥

一、元器件的选择 搜索并选择电桥&#xff0c;再multisim中选择FWB&#xff0c;就有各种型号的电桥: 电桥是用来干嘛的呢&#xff1f; 它是一个由四个二极管搭成的“桥梁”形状的电路&#xff0c;用来把交流电&#xff08;AC&#xff09;变成直流电&#xff08;DC&#xff09;。…...

跨平台商品数据接口的标准化与规范化发展路径:淘宝京东拼多多的最新实践

在电商行业蓬勃发展的当下&#xff0c;多平台运营已成为众多商家的必然选择。然而&#xff0c;不同电商平台在商品数据接口方面存在差异&#xff0c;导致商家在跨平台运营时面临诸多挑战&#xff0c;如数据对接困难、运营效率低下、用户体验不一致等。跨平台商品数据接口的标准…...

拟合问题处理

在机器学习中&#xff0c;核心任务通常围绕模型训练和性能提升展开&#xff0c;但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正&#xff1a; 一、机器学习的核心任务框架 机…...