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

LocalDateTime使用

开发中常常需要用到时间,随着jdk的发展,对于时间的操作已经摒弃了之前的Date等方法,而是采用了LocalDateTime方法,因为LocalDateTime是线程安全的。

下面我们来介绍一下LocalDateTime的使用。

时间转换

将字符串转换为时间格式

前后端交互的过程中,前端传的是字符串类型,那在进行时间比较之前,我们需要将字符串转为我们的时间格式。

其中DateTimeFormatter是在一种时间格式设置的工具

//将字符串转换为时间格式
@Test
public void testToDate(){//时间格式设置DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMdd HH:mm");//将字符串转换为时间LocalDateTime localDateTime = LocalDateTime.parse("20230923 23:12", dateTimeFormatter);System.out.println("字符串转换为时间:"+localDateTime);
}

运行结果:

将时间转换为字符串

如何将时间转换为字符串呢?同样地,需要先设置一个转换格式。

//将时间转换为字符串
@Test
public void testToString(){//时间格式设置DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMdd HH:mm");//获取当前时间LocalDateTime now = LocalDateTime.now();//将时间转换为字符串String nowString = now.format(dateTimeFormatter);System.out.println("时间转换为字符串:"+nowString);
}

运行结果:

获取当前时间

//@Test
public void testGetNow(){//获取当前时间LocalDateTime now = LocalDateTime.now();System.out.println("当前时间为:"+now);
}

运行结果:

以上就是获取当前的时间,并且输入的格式是ISO 8601的格式。

计算两个时间的差距

Duration是一种计算时间差的一个类,其中有两个入参,开始时间和结束时间。并且在该类中提供了多种方法,满足我们的需求:

//计算两个时间的差距
@Test
public void testTimeBetween(){DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMdd HH:mm");LocalDateTime parse = LocalDateTime.parse("20230221 21:16", dateTimeFormatter);//时间差距Duration between = Duration.between(parse,LocalDateTime.now());//将时间差转换为以天为单位long days = between.toDays();//将时间差转为以分钟为单位long minutes = between.toMinutes();//将时间差转为以小时为单位long hours = between.toHours();System.out.println(days);System.out.println(minutes);System.out.println(hours);
}

 计算两个日期的差值

当我们在实际的开发中,只涉及到日期的操作,我们也可以使用DateTimeFormatter进行日期转换。获取今天的日期可以使用:

LocalDate now = LocalDate.now();

但是在计算两个日期的差值是不能使用Duration了需要用到Period。但是这个只会计算出天数位的差值,和年、月没有关系。要计算真正的日期差值,可以使用until。

//计算两个日期的差值
@Test
public void testPeriod(){DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMdd");LocalDate parse = LocalDate.parse("20230121", dateTimeFormatter);//时间差距,注意这个只会计算出天数位的查找和月,年没有关系。//Period between = Period.between(parse,LocalDate.now());//两个日期之间相差了多少天//System.out.println(between.getDays());//计算两个日期真正相差多少天long until = parse.until(LocalDate.now(), ChronoUnit.DAYS);System.out.println("相差:"+until);
}

运行结果:

怎样将时间转换为时间戳

我们都知道LocalDateTime是没有带时区的,那我们将它转为时间戳的时候需要带上时区信息。

//将时间转换为时间戳
@Test
public void testToInstant(){LocalDateTime now = LocalDateTime.now();long l = now.toInstant(ZoneOffset.ofHours(8)).toEpochMilli() / 1000;System.out.println("l: " + l);//输出 l: 1677116982Instant instant = now.toInstant(ZoneOffset.ofHours(8));long epochSecond = instant.getEpochSecond();System.out.println("epochSecond:"+epochSecond);//输出 输出 epochSecond: 1677116982//将时间戳转换为时间LocalDateTime dateTime = LocalDateTime.ofEpochSecond(1677116982L, 0 ,ZoneOffset.ofHours(8));System.out.println(dateTime);
}

如上的代码中,toInstant就是将时间转为时间戳的方法,ZoneOffset.ofHours(8)就是时区偏移8小时,就是北京时间。

查看几分钟前的时间

@Test
public void test(){//minutes分钟之前的时间Integer minutes = 3;Instant instant = Instant.now().minus(Duration.ofMinutes(minutes));System.out.println(instant.atZone(ZoneId.systemDefault()));
}

运行结果:

相关文章:

LocalDateTime使用

开发中常常需要用到时间,随着jdk的发展,对于时间的操作已经摒弃了之前的Date等方法,而是采用了LocalDateTime方法,因为LocalDateTime是线程安全的。 下面我们来介绍一下LocalDateTime的使用。 时间转换 将字符串转换为时间格式…...

设计模式学习笔记 - 外观模式

设计模式学习笔记 - 外观模式一、影院管理问题二、传统方式解决影院管理问题三、外观模式介绍1、基本介绍2、原理类图四、外观模式解决影院管理问题五、外观模式在MyBatis框架应用的源码分析六、外观模式的注意事项和细节一、影院管理问题 组建一个家庭影院:DVD 播放…...

如何写出一份优秀的简历和求职信?

写一份优秀的简历和求职信是成功求职的重要一步。 01、简历 突出重点信息:把最重要的信息放在简历的前面,例如您的工作经验和教育背景等。 使用简明扼要的语言:在简历中使用简短的句子和简明扼要的语言,让招聘者能够快速了解您的…...

OpenGL超级宝典学习笔记:原子计数器

前言 本篇在讲什么 本篇为蓝宝书学习笔记 原子计数器 本篇适合什么 适合初学Open的小白 本篇需要什么 对C语法有简单认知 对OpenGL有简单认知 最好是有OpenGL超级宝典蓝宝书 依赖Visual Studio编辑器 本篇的特色 具有全流程的图文教学 重实践,轻理论&#…...

深圳/东莞/惠州师资比较强的CPDA数据分析认证

深圳/东莞/惠州师资比较强的CPDA数据分析认证培训机构 CPDA数据分析师认证是中国大数据领域有一定权威度的中高端人才认证,它不仅是中国较早大数据专业技术人才认证、更是中国大数据时代先行者,具有广泛的社会认知度和权威性。 无论是地方政府引进人才、…...

LeetCodeHOT100热题02

写在前面 主要是题目太多,所以和前面的分开来记录。有很多思路的图都来源于力扣的题解,如侵权会及时删除。不过代码都是个人实现的,所以有一些值得记录的理解。之前的算法系列参看: 剑指offer算法题01剑指offer算法题02 七、动…...

虹科Dimetix激光测距仪在锯切系统中的应用

HK-Dimetix激光测距仪——锯切系统应用 许多生产设施,例如金属服务中心,使用切割锯将每个客户的订单切割成一定长度。定长切割过程通常涉及卷尺和慢跑锯的传送带。但更简单的替代方法是使用虹科Dimetix非接触式激光距离传感器。 为了切断大长度的棒材&…...

FreeRTOS入门(02):任务基础使用与说明

文章目录目的创建任务任务调度任务控制延时函数任务句柄获取与修改任务优先级删除任务挂起与恢复任务强制任务离开阻塞状态空闲任务总结目的 任务(Task)是FreeRTOS中供用户使用的最核心的功能,本文将介绍任务创建与使用相关的基础内容。 本…...

ESP通过乐为物联控制灯,微信发送数值,ESP上传传感器数据

暂时放个程序 //ME->>{“method”: “update”,“gatewayNo”: “01”,“userkey”: “2b64c489d5f94237bcf2e23151bb7d01”}&^! //Ser->>{“f”:“message”,“p1”:“ok”}&^! //ME->>{“method”: “upload”,“data”:[{“Name”:“A1C”,“Val…...

Linux:共享内存api使用

代码&#xff1a; #include <stdlib.h> #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h> #include <arpa/inet.h> #include <sys/un.h> #include <sys/ipc.h…...

android9.0 java静态库操作JNI实例 动态注册

一、java层 源码 目录&#xff1a;/Demo/java/com/android/simpleini/SimpleJNI.java package com.example.simplejni;import android.app.Activity; import android.os.Bundle; import android.widget.TextView;public class SimpleJNI {private IpoManagerService(Context …...

自定义复杂图片水印

我的社交能力还不如5岁儿童和狗。 文章目录前言一、主要工具类总结前言 之前写过一些简单的图片压缩和图片加水印&#xff1a;JAVA实现图片质量压缩和加水印 本次主要是针对图片加水印进行一个升级&#xff0c;图片水印自定义&#xff0c;自适应大小。 来&#xff0c;先看几…...

文章读后感——《人间清醒,内容为王》

观后感 人间清醒&#xff0c;内容为王 - 技术er究竟该如何写博客&#xff1f;1024上海嘉年华之敖丙演讲观后感。 致敬愿意带领后生的前辈——哈哥 哈哥&#xff0c;《人间清醒&#xff0c;内容为王》这篇&#xff0c;我的鱼获&#xff0c; 是里面传递出来写技术博客的思维与想法…...

51单片机入门 - 驱动多位数码管

我使用的是普中51单片机开发板A2套件&#xff08;2022&#xff09;&#xff0c;驱动数码管可能需要参考电路原理图。开发环境的搭建教程在本专栏的 51单片机开发环境搭建 - VS Code 从编写到烧录 有过介绍。 关于我的软硬件环境信息&#xff1a; Windows 10STC89C52RCSDCC &am…...

Java进击框架:Spring(一)

Java进击框架&#xff1a;Spring&#xff08;一&#xff09;前言创建Spring项目Spring IoC容器和Beans介绍Bean的概述Spring IoC配置元数据实例化Bean依赖注入循环依赖详细配置生命周期回调Bean定义继承基于注解的容器配置Component和进一步的原型注解自动检测类和注册Bean定义…...

Java笔记(18)

目录 什么是mvc? 什么是SpringMVC Spring MVC的特点: 原理: 什么是Thymeleaf? thymeleaf依赖包:...

【免费教程】地下水环境监测技术规范HJ/T164-2020解读使用教程

地下水环境监测技术规范依据《中华人民共和国环境保护法》第十一条“国务院环境保护行政主管部门建立监测制度、制订监测规范”和《中华人民共和国水污染防治法》的要求&#xff0c;积极开展地下水环境监测&#xff0c;掌握地下水环境质量&#xff0c;保护地下水水质&#xff0…...

Html 代码学习

场景:在页面中插入音频 代码 常见属性: src 音频的路径 controls 显示播放的控件 autoplay 自动播放 loop 循环播放 场景:在页面中插入视频 代码 常见属性: src 路径 controls 显示播放的控件 autoplay 自动播放 要配合muted 例如 autoplay muted loop 循环播放 链接 /…...

如何通过IP找到地址?

在我们印象中&#xff0c;我们都知道可以通过 IP 地址找到某个人。但当我们细想一下&#xff0c;我们会发现其实 IP 地址与地理位置并不是直接相关的。那我们到底是如何通过 IP 地址找到地址的呢&#xff1f;答案是&#xff1a;通过自治系统&#xff08;Autonomous System&…...

业务单据堆积如山?如何提升会计做账效率?

某集团以“创建现代能源体系、提高人民生活品质”为使命&#xff0c;形成了贯通下游分销、中游贸易储运、上游生产的清洁能源产业链和涵盖健康、文化、旅游、置业的生命健康产品链。目前&#xff0c;某集团在全国21个省&#xff0c;为超过2681万个家庭用户、21万家企业提供能源…...

Rydberg原子量子门实现原理与优化技术

1. Rydberg原子平台中的量子门实现基础1.1 Rydberg原子特性与量子计算优势Rydberg原子是指外层电子被激发到高主量子数能级的原子态&#xff0c;这类原子具有三个关键特性使其成为量子计算的理想平台&#xff1a;强偶极-偶极相互作用&#xff1a;当两个原子同时处于Rydberg态时…...

30岁裸辞后,我用两个月拿下AI应用认证,现在OFFER选择困难症犯了

30岁裸辞那天&#xff0c;我最怕的不是没收入&#xff0c;而是突然发现&#xff1a;过去积累的经验&#xff0c;正在被AI重新定价。以前会写方案、做表格、跟项目&#xff0c;算是职场硬通货&#xff1b;到了2026年&#xff0c;招聘JD里开始频繁出现AI工具应用、智能工作流、Pr…...

如何快速掌握开源UE资产编辑器:UAssetGUI完整配置与实战指南

如何快速掌握开源UE资产编辑器&#xff1a;UAssetGUI完整配置与实战指南 【免费下载链接】UAssetGUI A tool designed for low-level examination and modification of Unreal Engine game assets by hand. 项目地址: https://gitcode.com/gh_mirrors/ua/UAssetGUI UAss…...

因果推断与机器学习融合:量化分析社会运动中镇压与抗议的动态关系

1. 项目概述&#xff1a;当数据科学遇见社会运动如果你研究过社会运动&#xff0c;尤其是那些看似突然爆发、席卷全国的抗议浪潮&#xff0c;你可能会被一个核心问题困扰&#xff1a;国家机器的镇压&#xff0c;究竟是浇灭火焰的冷水&#xff0c;还是火上浇油的催化剂&#xff…...

3个步骤彻底解决WSA安装失败问题:从错误代码到完美运行

3个步骤彻底解决WSA安装失败问题&#xff1a;从错误代码到完美运行 【免费下载链接】WSABuilds Run Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or KernelSU (root so…...

从无人机到自动驾驶:一文读懂ROS中ENU、NED、相机坐标系到底怎么用

从无人机到自动驾驶&#xff1a;ROS中ENU、NED与相机坐标系实战指南 当你在无人机上安装Realsense相机时&#xff0c;是否遇到过相机数据与飞控数据"对不上"的情况&#xff1f;或者在自动驾驶项目中&#xff0c;GPS的北东地坐标如何与激光雷达的东北天坐标对齐&#…...

QKeyMapper终极指南:Windows上最强大的开源按键映射工具

QKeyMapper终极指南&#xff1a;Windows上最强大的开源按键映射工具 【免费下载链接】QKeyMapper [按键映射工具] QKeyMapper&#xff0c;Qt开发Win10&Win11可用&#xff0c;不修改注册表、不需重新启动系统&#xff0c;可立即生效和停止。支持游戏手柄映射到键鼠&#xff…...

3个关键步骤:从零开始使用AlphaFold 3进行蛋白质结构预测

3个关键步骤&#xff1a;从零开始使用AlphaFold 3进行蛋白质结构预测 【免费下载链接】alphafold3 AlphaFold 3 inference pipeline. 项目地址: https://gitcode.com/gh_mirrors/alp/alphafold3 AlphaFold 3是DeepMind开发的最新蛋白质结构预测工具&#xff0c;它不仅能…...

注释覆盖率从42%→91%仅用8小时,DeepSeek R1/R2模型注释优化全链路实操,

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;注释覆盖率跃升的工程价值与DeepSeek模型适配性洞察 注释覆盖率并非代码“装饰”&#xff0c;而是可量化的知识沉淀密度指标。当函数级注释覆盖率从32%提升至89%&#xff0c;CI流水线中PR评审平均耗时下降41%&…...

终极免费解决方案:如何用Neat Bookmarks拯救你混乱的Chrome书签

终极免费解决方案&#xff1a;如何用Neat Bookmarks拯救你混乱的Chrome书签 【免费下载链接】neat-bookmarks A neat bookmarks tree popup extension for Chrome [DISCONTINUED] 项目地址: https://gitcode.com/gh_mirrors/ne/neat-bookmarks 还在为满屏混乱的Chrome书…...