LocalDateTime 相关方法

2023-11-03

注意:本文中相关变量与对应的类型关系为

  • datexxx -> LocalDate
  • timexxx -> LocalTime
  • dateTimexxx -> LocalDateTime

1、获取日期/时间/日期时间

// 获取当前日期
LocalDate date1 = LocalDate.now();		// 2020-09-04
// 获取当前时间
LocalTime time1 = LocalTime.now();		// 10:57:10.594
// 获取当前日期时间
LocalDateTime dateTime1 = LocalDateTime.now();  		// 2020-09-04T10:57:10.594

// 从 LocalDateTime 获取 LocalDate 
LocalDate dateTime1WithDate = dateTime1.toLocalDate();	// 2020-09-04
// LocalDateTime 获取 LocalTime
LocalTime dateTime1WithTime = dateTime1.toLocalTime();	// 10:57:10.594

2、获取年月日时分秒

// 年
int year = dateTime1.getYear();             // 2020
// 月(月的名称,例如:September)
Month month = dateTime1.getMonth();         // September
// 月(月的序号,例如:9)
int monthValue = dateTime1.getMonthValue(); // 9
// 日
int dayOfMonth = dateTime1.getDayOfMonth(); // 4
// 时
int hour = dateTime1.getHour();             // 10
// 分
int minute = dateTime1.getMinute();         // 57
// 秒
int second = dateTime1.getSecond();         // 10
// 2020年9月(SEPTEMBER)4日 10时57分10秒
// LocalDate 和 LocalTime 也可以使用如上方法

3、给定数值生成日期时间

// 生成日期
LocalDate date2 = LocalDate.of(2020, 9, 3); 	// 2020-09-03
// 生成时间
LocalTime time2 = LocalTime.of(22, 30, 59);     // 22:30:59
// 生成日期时间(月份格式,形如:9)
LocalDateTime dateTime2WithMonth = LocalDateTime.of(2020, 8, 1, 16, 29, 3); // 2020-08-01T16:29:03
// 生成日期时间(月份格式,形如:APRIL)
LocalDateTime dateTime2WithMonthValue = LocalDateTime.of(2020, Month.APRIL, 6, 19, 23, 2);  // 2020-04-06T19:23:02
// 生成日期时间(根据 LocalDate 和 LocalTime)
LocalDateTime dateTimeWithdt = LocalDateTime.of(date2, time2);		// 2020-09-03T22:30:59

4、格式化(日期时间->字符串)

// 格式化日期
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
String dateStr = dateFormatter.format(LocalDate.now()); 			// 2020/09/04
// 格式化时间
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
String timeStr = timeFormatter.format(LocalTime.now()); 			// 10:57:10
// 格式化日期时间
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
String dateTimeStr = dateTimeFormatter.format(LocalDateTime.now()); // 2020/09/04 10:57:10

5、解析(字符串->日期时间)

// 使用默认解析格式(输入要符合格式)
LocalTime time3 = LocalTime.parse("20:30:55");      // 20:30:55
LocalDate date3 = LocalDate.parse("2020-10-03");    // 2020-10-03
LocalDateTime dateTime3 = LocalDateTime.parse("2020-03-04T13:45:55");   // 2020-03-04T13:45:55

// 自定义解析格式
LocalDate date4 = LocalDate.parse("2020/03/04", DateTimeFormatter.ofPattern("yyyy/MM/dd")); // 2020-03-04
LocalTime time4 = LocalTime.parse("20/01/23", DateTimeFormatter.ofPattern("HH/mm/ss"));     // 20:01:23
LocalDateTime dateTime4 = LocalDateTime.parse("2020/05/06 23/34/45",
    DateTimeFormatter.ofPattern("yyyy/MM/dd HH/mm/ss"));	// 2020-05-06T23:34:45

6、设定具体值


LocalDate date5 = date4.withYear(1999).withMonth(9).withDayOfMonth(25); // 1999-09-25
LocalTime time5 = time4.withHour(1).withMinute(2).withSecond(3);        // 01:02:03
LocalDateTime dateTime5 = dateTime4.withYear(1998).withMonth(3).withDayOfMonth(31)
    .withHour(13).withMinute(10).withSecond(25);                    	// 1998-03-31T13:10:25

7、日期时间的加减

// 加
LocalDate date6 = date5.plusYears(1).plusMonths(1).plusDays(1);         // 2000-10-26
LocalTime time6 = time5.plusHours(1).plusMinutes(1).plusSeconds(1);     // 02:03:04
LocalDateTime dateTime6 = dateTime5.plusYears(1).plusMonths(1).plusDays(1)
    .plusHours(1).plusMinutes(1).plusSeconds(1);                    	// 1999-05-01T14:11:26
// 减
LocalDate date7 = date6.minusYears(1).minusMonths(1).minusDays(1);      // 1999-09-25
LocalTime time7 = time6.minusHours(1).minusMinutes(1).minusSeconds(1);  // 01:02:03
LocalDateTime dateTime7 = dateTime6.minusYears(1).minusMonths(1).minusDays(1).
    minusHours(1).minusMinutes(1).minusSeconds(1);                  	// 1998-03-31T13:10:25

8、小测试(日期->日期时间)

/*
* 八、相关功能:查询某一个日期(不含时间)内的数据
*    日期 - > 日期时间
*
* 当用户选择某一天的数据,如:2020/09/04 - 2020/09/05
* 数据库日期格式为"yyyy/MM/dd HH:mm:ss",所以将 日期 转换为 日期时间 时,会变为:2020/09/04 00:00:00 - 2020/09/05 00:00:00
* 导致无法查询截止日期那一天的数据,所以需要对日期进行特殊处理
* 将截至日期转换为日期时间,然后(+1 day)(-1 second)
* */
LocalDate localDate = LocalDate.parse("2020/09/04", DateTimeFormatter.ofPattern("yyyy/MM/dd"));
LocalTime localTime = LocalTime.of(0, 0, 0);
LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);
LocalDateTime localDateTime1 = localDateTime.plusDays(1).minusSeconds(1); 
// 处理完毕,截止日期为:2020-09-04T23:59:59
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LocalDateTime 相关方法 的相关文章

  • Java-线程与CPU的关系

    我对多线程还很陌生 我正在开发一个项目 尝试在我的 Java 程序中使用 4 个 CPU 我想做类似的事情 int numProcessors Runtime getRuntime availableProcessors ExecutorS
  • 透明平开窗

    我有一点JWindow上面有一个标志 用户可以将东西拖到上面 我主要在 OS X 上开发我的应用程序 为了获得我使用的透明窗口 setBackground new Color 0 0 0 0 在 Mac 上 这工作得很好 但在 Window
  • 多线程环境下如何更好的使用ExecutorService?

    我需要创建一个库 其中包含同步和异步方法 executeSynchronous 等待直到有结果 返回结果 executeAsynchronous 立即返回一个 Future 如果需要 可以在其他事情完成后进行处理 我的图书馆的核心逻辑 客户
  • 在 IntelliJ 上进行 Google App Engine Java 开发?

    令人烦恼的是 Google App Engine 已成为其中的另一个项目 他们只发布 Eclipse 插件 如 Spring Webflow 而我更喜欢 IntelliJ 你能用IntelliJ成功运行本地测试环境吗 并调试 部署本地或实时
  • 使用 Android WebViewClient 启用特定 SSL 协议

    我的应用程序使用WebViewClient与服务器建立 SSL 连接 服务器配置为仅接受 TLSv1 1 及以上协议 使用 Android 时 如何检查哪些 SSL 协议是 a 支持的和 b 默认启用的WebViewClient在设备上 如
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • 如何测试调用父类的受保护(不需要的)方法的方法?

    我陷入了一个非常奇怪的情况 我有一些需要测试的特定代码 这里是 public class A The real method of real class is so big that I just don t want to test it
  • 尝试在java中的Arraylist中查找对象的所有出现

    我有一个 Java ArrayList 我需要查找其中出现的所有特定对象 ArrayList indexOf Object 方法只找到一次出现 所以看来我还需要其他东西 我认为你不需要太花哨 以下应该可以正常工作 static
  • 以编程方式设置 Logback Appender 路径

    我正在尝试以编程方式设置 Logback 附加程序路径 滚动文件附加器 http logback qos ch apidocs ch qos logback core rolling RollingFileAppender html准确地说
  • 从 sbt 程序集运行 uber jar 会导致错误:无法找到或加载主类

    我有一个使用 sbt 程序集插件打包为 uber jar 的 Spark 作业 这build sbt指定一个可运行的 main 作为生成的 uber jar 的目标 mainClass in assembly Some com foo Ba
  • 不要模拟值对象:过于通用的规则,没有解释

    以下是 Mockito 单元测试框架的引用 不要模拟值对象 为什么有人会想要这样做呢 因为实例化对象太痛苦了 gt 无效 原因 如果创造新的装置太困难 那就是一个迹象 代码可能需要一些认真的重构 另一种方法是创建 价值对象的构建者 有一些工
  • 如何从 Google Custom Search API 获取超过 100 个结果

    我正在尝试使用 Google Custom Search API 在 Java 中进行研究 因此 我需要为每个查询提供一个大的结果集 然而 我似乎仅限于前 100 个结果 这比我需要的要少得多 我使用这样的列表方法 list setStar
  • 如何使用 Guava 连接字符串?

    我写了一些代码来连接字符串 String inputFile for String inputLine list inputFile inputLine trim 但我不能使用 连接 所以我决定使用 Guava 所以我需要使用Joiner
  • 是否可以为 azure blob 存储中的给定目录生成具有写入权限的 SAS(共享访问签名)

    我们的 blob 存储帐户结构 容器名称 simple 在这个容器内我们有 blob aa one zip aa two zip bb ss zip bb dd zip 是否可以生成对aa 目录 有写权限 但对bb 目录 没有访问权限的SA
  • 如何使用云打印打印Android活动显示

    我正在尝试将 Google 云打印实现到应用程序中 遵循集成指南 https developers google com cloud print docs android 我试图通过打印 google com 来保持基本 单击我创建的打印按
  • scala中的协变类型参数需要在java接口中保持不变

    我有一个看起来像这样的特征 一些进一步的信息可以在我自己提出了这个相关问题 https stackoverflow com questions 3695990 inheritance and automatic type conversio
  • Selenium - 等待网络流量

    我们将 Selenium 与 Java API 和一些 Javascript 用户扩展一起使用 我们在应用程序中使用了大量 AJAX 调用 我们的许多测试随机失败 因为有时 AJAX 调用完成得比其他时候慢 因此页面未完全加载 我们通过等待
  • H2 - (相当)长的 INSERT 失败,错误 42000

    H2 内存中 插入 错误 42000 尝试过版本 1 4 196 1 4 197 1 4 199 我还尝试在 H2 服务器 本地 上执行 INSERT 也失败 给出错误的行 抱歉 但出于安全原因 我无法生成更多 INSERT INTO tb
  • 如果抛出RuntimeException,是否可以将其作为异常捕获?

    如果我有一个try抛出一个块RuntimException子类 可以是后续的catch块将其捕获为Exception 具体来说 public class MyAppException extends RuntimeException In
  • 如何从spark中的hbase表中获取所有数据

    我在 hbase 中有一个大表 名称为 UserAction 它具有三个列族 歌曲 专辑 歌手 我需要从 歌曲 列族中获取所有数据作为 JavaRDD 对象 我尝试了这段代码 但效率不高 有更好的解决方案来做到这一点吗 static Spa

随机推荐

  • 用AI写代码 -- Github Copilot测试

    截图为copilot官网 要使用copilot 首先要安装vscode 下载copilot插件 下载完了以后 并不能马上使用 还需要申请内测账号 前几天 我终于收到内测账号通过的邮件 趁着今天在家 连忙打开vscode测试一下 爬图片 我们
  • STL——String类(2)成员函数详解

    目录 前言 一 String的成员函数 1 基本成员函数 代码实验 实验结果 类对象每次扩容后的capacity数据展示 1 2 resize 调整字符串大小 1 3reserve 请求更改该对象的容量capacity值 代码实验 前言 S
  • 新建的maven项目没有maven依赖

    把该项目转成动态web项目 出现web图标后再右键项目 点击属性 添加maven依赖 删除项目 不删源码 重新引入后可出现maven依赖 有时未成功 可重新添加maven依赖 这时在pom xml文件中添加的依赖也会进入到maven依赖中
  • 微信小程序怎么设置全局背景颜色?

    其实啊 这个可简单了 有手就行 首先 打开微信小程序开发工具 其次 找到全局配置app json文件 修改 navigationBarBackgroundColor 222 这是修改的导航栏的颜色 接着 在app wxss文件中 配值pag
  • JAVA微服务场景下分布式日志收集排查问题实战

    问题产生的根由 不同服务的日志存在哪里 我们怎么去排查线上问题 问题场景 我们部署的java服务可能有几十个 不同的项目里面他是看不到别的服务的日志 只有服务的返回msg消息 相比传统的单体服务来说 排查问题和解决问题的原因相对比较复杂和麻
  • 《Kafka权威指南》——初识 Kafka

    发布与订阅消息系统 在正式讨论Apache Kafka 以下简称Kafka 之前 先来了解发布与订阅消息系统的概念 并认识这个系统的重要性 数据 消息 的发送者 发布者 不会直接把消息发送给接收 者 这是发布与订阅消息系统的一个特点 发布者
  • 性能测试很难吗?一文带你学会性能测试核心流程和概念

    在很多人的概念中 性能测试就是使用Loadrunner Jmeter等工具进行压测 然后得到测试结果即可 但仔细想想 对谁进行测试 测试目的是什么 监测指标有哪些 得到的结果如何分析 怎样的结果算通过 等等 所以使用工具压测只是性能测试最基
  • 泰迪杯C题第二问

    面包多 https mianbaoduo com o bread Ypmbl5Zq
  • java 8 新特性,接口默认方法、lambda表达式、Optional、stream

    java 8 新特性 当面试官让我说几个java 8 的新特性 我巴拉巴拉把知道的都说了 然而 面试官接着问 stream里面如果按照分类过滤怎么做呢 map 是什么 嘀 扫码成功 哎呀 地铁里面的空调真不错啊 真不错 果然 只做到了解是不
  • qt常见问题

    1所有能够接受和发送消息的class必须存在有消息循环的线程环境中 2对象的消息处理默认环境是是存在于创建这个对象的线程环境中的 对于第二点如何理解 比如 subthread subthread connect this sigA this
  • Chisel学习2构建过程与测试

    要开始学习更有趣的Chisel代码 我们首先需要学习如何编译Chisel程序 如何生成在FPGA中执行的Verilog代码 以及如何编写调试测试并验证我们的电路是正确的 Chisel是用Scala编写的 因此任何支持Scala的构建过程都可
  • 基于Vue三大互联网企业级开箱即用中后台解决方案对比字节跳动Arco Design Pro,蚂蚁集团Ant Design Pro和腾讯TDesign Starter

    基于Vue中后台解决方案越来越多开源了 随着各大互联网企业的Vue UI框架开源和普及后 都又有新的中后台解决方案也开源 方便开发者使用了 下面来作一个主观和客观的对比一下 字节跳动Arco Pro 蚂蚁集团Ant Design Pro 腾
  • Android 新增一个自定义分区

    在某个项目中 有一个需求 需要新增一个xxx分区 这个分区类似于vendor oem分区 名字为指定的 此处有点好奇 为什么不直接使用oem分区 而是另外弄一个分区名出来 功能实现点 在root目录下新增分区的挂载目录 将自定义分区的内容生
  • Flask-数据库-SQLAlchemy

    SQLAlchemy是flask的扩展 是一个功能强大的OR映射器 支持多种数据库后台 可以将类的对象映射至数据库表 使用这个工具 可以创建数据库 创建表 并为数据库添加数据 进行查询操作等 参考 Flask SQLAlchemy Flas
  • kafka(一)kafka的基础与常用配置

    文章目录 一 kafka基础内容 二 kafka 中重要的参数配置 2 1 log dirs 2 2 unclean leader election enable 2 3 message max bytes 2 4 request requ
  • 基于LMI的输出反馈H∞控制及其仿真(含实现程序)

    目录 1 H 输出反馈控制 1 1 框架结构 1 2 广义系统 1 3 等价的LMI问题 2 参考文献 3 文献案例实现 3 1 二阶系统 3 2 H 最优输出反馈控制器 3 2 1 程序 3 1 2 时域和频域分析 3 3 H 次优输出反
  • 阿里Java学习路线:阶段 2:数据库开发-数据库及SQL/MySQL基础:课时8:DDL(数据定义语言)之操作数据库

    3 DDL 数据定义语言 3 1 基本操作 l 查看所有数据库名称 SHOW DATABASES l 切换数据库 USE mydb1 切换到mydb1数据库 3 2 操作数据库 l 创建数据库 CREATE DATABASE IF NOT
  • openai-chatGPT的API调用异常处理

    因为目前openai对地区限制的原因 即使设置了全局代理使用API调用时 还是会出现科学上网代理的错误问题 openai库 0 26 5 错误提示 raise error APIConnectionError openai error AP
  • 程序包org.apache.tools.zip不存在

    可以看出 org apache tools zip 是 ant jar里面的 然后在pom配置文件里面加上
  • LocalDateTime 相关方法

    文章目录 1 获取日期 时间 日期时间 2 获取年月日时分秒 3 给定数值生成日期时间 4 格式化 日期时间 gt 字符串 5 解析 字符串 gt 日期时间 6 设定具体值 7 日期时间的加减 8 小测试 日期 gt 日期时间 注意 本文中