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

java8日期时间工具类

【README】

1)本文总结了java8中日期时间常用工具方法;包括:

  • 日期时间对象格式化为字符串;
  • 日期时间字符串解析为日期时间对象;
  • 日期时间对象转换;
    • 转换过程中,需要注意的是: Instant与Date带时区(易变),而LocalDateTime,LocalDate,LocalTime 不带时区(不可变)

2)日期时间工具类定义如下:

public class BusiDateTimeUtils {/** 日期时间格式化器 */private static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");/** 日期格式化器 */private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");private BusiDateTimeUtils() {// do nothing.}
// .................... 
}

 


【1】当前日期时间操作

/** -------------------- 1. 当前日期时间操作 -------------------- */public static String getNowLocalDateTimeStr() {return LocalDateTime.now().format(DATETIME_FORMATTER);}public static String getNowLocalDateStr() {return LocalDate.now().format(DATE_FORMATTER);}

【1.1】单测案例:

/** -------------------- 1. 当前日期时间操作 -------------------- */@Testpublic void test1() {// 获取当前日期时间String nowLocalDateTimeStr = BusiDateTimeUtils.getNowLocalDateTimeStr();System.out.println("nowLocalDateTimeStr="+nowLocalDateTimeStr); // 2023-10-05 21:28:09// 获取当前日期String nowLocalDateStr = BusiDateTimeUtils.getNowLocalDateStr();System.out.println("nowLocalDateStr=" + nowLocalDateStr); // 2023-10-05}

【2】字符串解析为日期时间对象

 /** -------------------- 2. 字符串解析为日期时间对象 -------------------- */public static LocalDateTime parseLocalDateTime(String dateTimeStr) {return LocalDateTime.parse(dateTimeStr, DATETIME_FORMATTER);}public static LocalDate parseLocalDate(String dateStr) {return LocalDate.parse(dateStr, DATE_FORMATTER);}

【2.1】单测案例

/** -------------------- 2. 字符串解析为日期时间对象 -------------------- */@Testpublic void test2() {// 解析当前日期时间String nowLocalDateTimeStr = BusiDateTimeUtils.getNowLocalDateTimeStr();System.out.println("nowLocalDateTimeStr="+ nowLocalDateTimeStr); // 2023-10-05 21:29:32LocalDateTime parsedLocalDateTime = BusiDateTimeUtils.parseLocalDateTime(nowLocalDateTimeStr);System.out.println(parsedLocalDateTime); // 2023-10-05T21:29:32// 解析当前日期String nowLocalDateStr = BusiDateTimeUtils.getNowLocalDateStr();System.out.println("nowLocalDateStr=" + nowLocalDateStr); // 2023-10-05LocalDate parsedLocalDate = BusiDateTimeUtils.parseLocalDate(nowLocalDateStr);System.out.println(parsedLocalDate); // 2023-10-05}

【3】日期时间对象格式化为字符串

/** -------------------- 3. 日期时间对象格式化为字符串 -------------------- */public static String format(LocalDateTime localDateTime) {return localDateTime.format(DATETIME_FORMATTER);}public static String format(LocalDate localDate) {return localDate.format(DATE_FORMATTER);}

【3.1】单测案例

/** -------------------- 3. 日期时间对象格式化为字符串 -------------------- */@Testpublic void test3() {// 格式化当前日期时间对象为字符串String nowLocalDateTimeStr = BusiDateTimeUtils.getNowLocalDateTimeStr();System.out.println("nowLocalDateTimeStr="+ nowLocalDateTimeStr); // 2023-10-05 21:35:19LocalDateTime parsedLocalDateTime = BusiDateTimeUtils.parseLocalDateTime(nowLocalDateTimeStr);String formatedLocalDateTime = BusiDateTimeUtils.format(parsedLocalDateTime);System.out.println(formatedLocalDateTime); // 2023-10-05 21:35:19// 格式化当前日期对象为字符串String nowLocalDateStr = BusiDateTimeUtils.getNowLocalDateStr();System.out.println("nowLocalDateStr=" + nowLocalDateStr); // 2023-10-05LocalDate parsedLocalDate = BusiDateTimeUtils.parseLocalDate(nowLocalDateStr);String formatedLocalDate = BusiDateTimeUtils.format(parsedLocalDate);System.out.println(formatedLocalDate); // 2023-10-05}

【4】*LocalDateTime 转为其他日期时间类型(重要)

/** -------------------- 4. LocalDateTime 转为其他日期时间类型 -------------------- */public static LocalDate toLocalDate(LocalDateTime localDateTime) {return localDateTime.toLocalDate();}public static Instant toInstant(LocalDateTime localDateTime) {return localDateTime.toInstant(ZoneOffset.UTC);}public static Date toDate(LocalDateTime localDateTime) {return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());}

【说明】LocalDateTime 转 Instant与Date时,做了一些特殊处理:

  • LocalDateTime没有时区,而Instant有时区;为了统一,把Instant的时区设置为0时区(UTC),则LocalDateTime与Instant都没有时区了;
  • LocalDateTime没有时区,Instant有时区,Date有时区:
    • 先把 LocalDateTime转为带时区的日期时间 ZonedDateTime
    • 再把 ZonedDateTime 转 Instant(默认时区为系统时区);
    • 最后把Instant转Date(默认时区为系统时区); 

【4.1】单测案例

/** -------------------- 4. LocalDateTime 转为其他日期时间类型 -------------------- */@Testpublic void test4() {LocalDateTime nowLocalDateTime = LocalDateTime.now();System.out.println("nowLocalDateTimeStr="+BusiDateTimeUtils.format(nowLocalDateTime)); // 2023-10-05 21:37:14// LocalDateTime 转 LocalDateLocalDate localDate = BusiDateTimeUtils.toLocalDate(nowLocalDateTime);LocalDate localDate2 = nowLocalDateTime.toLocalDate(); // 与上一行代码效果一样System.out.println("localDate=" + localDate); // 2023-10-05// LocalDateTime 转 InstantInstant nowInstant = BusiDateTimeUtils.toInstant(nowLocalDateTime);System.out.println(nowInstant); // 2023-10-05T21:37:14.677Z// LocalDateTime 转 DateDate nowDate = BusiDateTimeUtils.toDate(nowLocalDateTime);System.out.println(nowDate); // Thu Oct 05 21:37:14 CST 2023 }

【5】LocalDate 转为其他日期时间类型

/** -------------------- 5. LocalDate 转为其他日期时间类型 -------------------- */public static LocalDateTime toLocalDateTime(LocalDate localDate) {return localDate.atStartOfDay();}public static Instant toInstant(LocalDate localDate) {return localDate.atStartOfDay().toInstant(ZoneOffset.UTC);}public static Date toDate(LocalDate localDate) {return Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());}

【说明】LocalDate 转 Instant与Date时,做了一些特殊处理:与 LocalDateTime 转 Instant与Date类似 ,这里不再赘述;参见本文章节【4】;

【5.1】单测案例

/** -------------------- 5. LocalDate 转为其他日期时间类型 -------------------- */@Testpublic void test5() {LocalDate nowLocalDate = LocalDate.now();System.out.println("nowLocalDateStr="+BusiDateTimeUtils.format(nowLocalDate)); // 2023-10-05// LocalDate 转 LocalDateTimeLocalDateTime localDateTime = BusiDateTimeUtils.toLocalDateTime(nowLocalDate);System.out.println("localDateTime=" + localDateTime); // 2023-10-05T00:00// LocalDate 转 InstantInstant nowInstant = BusiDateTimeUtils.toInstant(nowLocalDate);System.out.println(nowInstant); // 2023-10-05T00:00// LocalDate 转 DateDate nowDate = BusiDateTimeUtils.toDate(nowLocalDate);System.out.println(nowDate); //  Thu Oct 05 00:00:00 CST 2023}

【6】Instant 转为其他日期时间类型

/** -------------------- 6. Instant 转为其他日期时间类型 -------------------- */public static LocalDateTime toLocalDateTime(Instant instantWithoutZone) {return LocalDateTime.ofInstant(instantWithoutZone, ZoneOffset.UTC);}public static LocalDate toLocalDate(Instant instantWithoutZone) {return toLocalDateTime(instantWithoutZone).toLocalDate();}public static Date toDate(Instant instantWithoutZone) {return toDate(toLocalDateTime(instantWithoutZone));}

【说明】

注意上述工具方法中入参 Instant变量是不带时区的,也可以理解为时区为UTC(0时区)

【6.1】单测案例

/** -------------------- 6. Instant 转为其他日期时间类型 -------------------- */@Testpublic void test6() {Instant nowInstantWithoutZone = LocalDateTime.now().toInstant(ZoneOffset.UTC);System.out.println("nowZonedInstant="+nowInstantWithoutZone); // 2023-10-05T22:00:54.783ZSystem.out.println("Instant.now()=" + Instant.now()); // 2023-10-05T14:00:54.798Z(注意这里晚了8个小时)// Instant 转 LocalDateTimeLocalDateTime localDateTime = BusiDateTimeUtils.toLocalDateTime(nowInstantWithoutZone);System.out.println("localDateTime=" + localDateTime); // 2023-10-05T22:00:54.783// Instant 转 LocalDateLocalDate localDate = BusiDateTimeUtils.toLocalDate(nowInstantWithoutZone);System.out.println("localDate=" + localDate); // 2023-10-05// Instant 转 DateDate date = BusiDateTimeUtils.toDate(nowInstantWithoutZone);System.out.println("date=" + date); // date=Thu Oct 05 22:00:54 CST 2023 }

【7】总结

【7.1】日期时间工具类

/*** @Description 日期时间工具类* @author xiao tang* @version 1.0.0* @createTime 2023年10月05日*/
public class BusiDateTimeUtils {/** 日期时间格式化器 */private static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");/** 日期格式化器 */private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");private BusiDateTimeUtils() {// do nothing.}/** -------------------- 1. 当前日期时间操作 -------------------- */public static String getNowLocalDateTimeStr() {return LocalDateTime.now().format(DATETIME_FORMATTER);}public static String getNowLocalDateStr() {return LocalDate.now().format(DATE_FORMATTER);}/** -------------------- 2. 字符串解析为日期时间对象 -------------------- */public static LocalDateTime parseLocalDateTime(String dateTimeStr) {return LocalDateTime.parse(dateTimeStr, DATETIME_FORMATTER);}public static LocalDate parseLocalDate(String dateStr) {return LocalDate.parse(dateStr, DATE_FORMATTER);}/** -------------------- 3. 日期时间对象格式化为字符串 -------------------- */public static String format(LocalDateTime localDateTime) {return localDateTime.format(DATETIME_FORMATTER);}public static String format(LocalDate localDate) {return localDate.format(DATE_FORMATTER);}/** -------------------- 4. LocalDateTime 转为其他日期时间类型 -------------------- */public static LocalDate toLocalDate(LocalDateTime localDateTime) {return localDateTime.toLocalDate();}public static Instant toInstant(LocalDateTime localDateTime) {return localDateTime.toInstant(ZoneOffset.UTC);}public static Date toDate(LocalDateTime localDateTime) {return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());}/** -------------------- 5. LocalDate 转为其他日期时间类型 -------------------- */public static LocalDateTime toLocalDateTime(LocalDate localDate) {return localDate.atStartOfDay();}public static Instant toInstant(LocalDate localDate) {return localDate.atStartOfDay().toInstant(ZoneOffset.UTC);}public static Date toDate(LocalDate localDate) {return Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());}/** -------------------- 6. Instant 转为其他日期时间类型 -------------------- */public static LocalDateTime toLocalDateTime(Instant instantWithoutZone) {return LocalDateTime.ofInstant(instantWithoutZone, ZoneOffset.UTC);}public static LocalDate toLocalDate(Instant instantWithoutZone) {return toLocalDateTime(instantWithoutZone).toLocalDate();}public static Date toDate(Instant instantWithoutZone) {return toDate(toLocalDateTime(instantWithoutZone));}
}

【7.2】日期时间工具类单测案例

/*** @Description 日期时间工具类单测案例 * @author xiao tang* @version 1.0.0* @createTime 2023年10月05日*/
public class BusiDateTimeUtilsTest {/** -------------------- 1. 当前日期时间操作 -------------------- */@Testpublic void test1() {// 获取当前日期时间String nowLocalDateTimeStr = BusiDateTimeUtils.getNowLocalDateTimeStr();System.out.println("nowLocalDateTimeStr="+nowLocalDateTimeStr); // 2023-10-05 21:28:09// 获取当前日期String nowLocalDateStr = BusiDateTimeUtils.getNowLocalDateStr();System.out.println("nowLocalDateStr=" + nowLocalDateStr); // 2023-10-05}/** -------------------- 2. 字符串解析为日期时间对象 -------------------- */@Testpublic void test2() {// 解析当前日期时间String nowLocalDateTimeStr = BusiDateTimeUtils.getNowLocalDateTimeStr();System.out.println("nowLocalDateTimeStr="+ nowLocalDateTimeStr); // 2023-10-05 21:29:32LocalDateTime parsedLocalDateTime = BusiDateTimeUtils.parseLocalDateTime(nowLocalDateTimeStr);System.out.println(parsedLocalDateTime); // 2023-10-05T21:29:32// 解析当前日期String nowLocalDateStr = BusiDateTimeUtils.getNowLocalDateStr();System.out.println("nowLocalDateStr=" + nowLocalDateStr); // 2023-10-05LocalDate parsedLocalDate = BusiDateTimeUtils.parseLocalDate(nowLocalDateStr);System.out.println(parsedLocalDate); // 2023-10-05}/** -------------------- 3. 日期时间对象格式化为字符串 -------------------- */@Testpublic void test3() {// 格式化当前日期时间对象为字符串String nowLocalDateTimeStr = BusiDateTimeUtils.getNowLocalDateTimeStr();System.out.println("nowLocalDateTimeStr="+ nowLocalDateTimeStr); // 2023-10-05 21:35:19LocalDateTime parsedLocalDateTime = BusiDateTimeUtils.parseLocalDateTime(nowLocalDateTimeStr);String formatedLocalDateTime = BusiDateTimeUtils.format(parsedLocalDateTime);System.out.println(formatedLocalDateTime); // 2023-10-05 21:35:19// 格式化当前日期对象为字符串String nowLocalDateStr = BusiDateTimeUtils.getNowLocalDateStr();System.out.println("nowLocalDateStr=" + nowLocalDateStr); // 2023-10-05LocalDate parsedLocalDate = BusiDateTimeUtils.parseLocalDate(nowLocalDateStr);String formatedLocalDate = BusiDateTimeUtils.format(parsedLocalDate);System.out.println(formatedLocalDate); // 2023-10-05}/** -------------------- 4. LocalDateTime 转为其他日期时间类型 -------------------- */@Testpublic void test4() {LocalDateTime nowLocalDateTime = LocalDateTime.now();System.out.println("nowLocalDateTimeStr="+BusiDateTimeUtils.format(nowLocalDateTime)); // 2023-10-05 21:37:14// LocalDateTime 转 LocalDateLocalDate localDate = BusiDateTimeUtils.toLocalDate(nowLocalDateTime);LocalDate localDate2 = nowLocalDateTime.toLocalDate(); // 与上一行代码效果一样System.out.println("localDate=" + localDate); // 2023-10-05// LocalDateTime 转 InstantInstant nowInstant = BusiDateTimeUtils.toInstant(nowLocalDateTime);System.out.println(nowInstant); // 2023-10-05T21:37:14.677Z// LocalDateTime 转 DateDate nowDate = BusiDateTimeUtils.toDate(nowLocalDateTime);System.out.println(nowDate); // Thu Oct 05 21:37:14 CST 2023}/** -------------------- 5. LocalDate 转为其他日期时间类型 -------------------- */@Testpublic void test5() {LocalDate nowLocalDate = LocalDate.now();System.out.println("nowLocalDateStr="+BusiDateTimeUtils.format(nowLocalDate)); // 2023-10-05// LocalDate 转 LocalDateTimeLocalDateTime localDateTime = BusiDateTimeUtils.toLocalDateTime(nowLocalDate);System.out.println("localDateTime=" + localDateTime); // 2023-10-05T00:00// LocalDate 转 InstantInstant nowInstant = BusiDateTimeUtils.toInstant(nowLocalDate);System.out.println(nowInstant); // 2023-10-05T00:00// LocalDate 转 DateDate nowDate = BusiDateTimeUtils.toDate(nowLocalDate);System.out.println(nowDate); //  Thu Oct 05 00:00:00 CST 2023}/** -------------------- 6. Instant 转为其他日期时间类型 -------------------- */@Testpublic void test6() {Instant nowInstantWithoutZone = LocalDateTime.now().toInstant(ZoneOffset.UTC);System.out.println("nowZonedInstant="+nowInstantWithoutZone); // 2023-10-05T22:00:54.783ZSystem.out.println("Instant.now()=" + Instant.now()); // 2023-10-05T14:00:54.798Z(注意这里晚了8个小时)// Instant 转 LocalDateTimeLocalDateTime localDateTime = BusiDateTimeUtils.toLocalDateTime(nowInstantWithoutZone);System.out.println("localDateTime=" + localDateTime); // 2023-10-05T22:00:54.783// Instant 转 LocalDateLocalDate localDate = BusiDateTimeUtils.toLocalDate(nowInstantWithoutZone);System.out.println("localDate=" + localDate); // 2023-10-05// Instant 转 DateDate date = BusiDateTimeUtils.toDate(nowInstantWithoutZone);System.out.println("date=" + date); // date=Thu Oct 05 22:00:54 CST 2023}
}

相关文章:

java8日期时间工具类

【README】 1)本文总结了java8中日期时间常用工具方法;包括: 日期时间对象格式化为字符串;日期时间字符串解析为日期时间对象;日期时间对象转换; 转换过程中,需要注意的是: Instan…...

算法-动态规划/trie树-单词拆分

算法-动态规划/trie树-单词拆分 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/word-break/description/?envTypestudy-plan-v2&envIdtop-interview-150 1.2 题目描述 2 动态规划 2.1 解题思路 dp[i]表示[0, i)字符串可否构建那么dp[i]可构建的条件是&…...

React框架核心原理

一、整体架构 三大核心库与对应的组件 history -> react-router -> react-router-dom react-router 可视为react-router-dom 的核心&#xff0c;里面封装了<Router>&#xff0c;<Route>&#xff0c;<Switch>等核心组件,实现了从路由的改变到组件的更新…...

python-pytorch 利用pytorch对堆叠自编码器进行训练和验证

利用pytorch对堆叠自编码器进行训练和验证 一、数据生成二、定义自编码器模型三、训练函数四、训练堆叠自编码器五、将已训练的自编码器级联六、微调整个堆叠自编码器 一、数据生成 随机生成一些数据来模拟训练和验证数据集&#xff1a; import torch# 随机生成数据 n_sample…...

制作 3 档可调灯程序编写

PWM 0~255 可以将数据映射到0 75 150 225 尽可能均匀电压间隔...

源码分享-M3U8数据流ts的AES-128解密并合并---GoLang实现

之前使用C语言实现了一次&#xff0c;见M3U8数据流ts的AES-128解密并合并。 学习了Go语言后&#xff0c;又用Go重新实现了一遍。源码如下&#xff0c;无第三方库依赖。 package mainimport ("crypto/aes""crypto/cipher""encoding/binary"&quo…...

CSDN Q: “这段代码算是在STC89C52RC51单片机上完成PWM呼吸灯了吗?“

这是 CSDN上的一个问题 这段代码算是在STC89C52RC51单片机上完成PWM呼吸灯了吗&#xff0c;还是说得用上定时器和中断函数#include <regx52.h> 我个人认为: 效果上来说, 是的! 码以 以Time / 100-Time 调 Duty, 而 for i loop成 Period, 加上延时, 实现了 PWM周期, 虽然…...

Linux系统编程系列之线程池

Linux系统编程系列&#xff08;16篇管饱&#xff0c;吃货都投降了&#xff01;&#xff09; 1、Linux系统编程系列之进程基础 2、Linux系统编程系列之进程间通信(IPC)-信号 3、Linux系统编程系列之进程间通信(IPC)-管道 4、Linux系统编程系列之进程间通信-IPC对象 5、Linux系统…...

Linux CentOS7 vim多文件与多窗口操作

窗口是可视化的分割区域。Windows中窗口的概念与linux中基本相同。连接xshell就是在Windows中新建一个窗口。而vim打开一个文件默认创建一个窗口。同时&#xff0c;Vim打开一个文件也就会建立一个缓冲区&#xff0c;打开多个文件就会创建多个缓冲区。 本文讨论vim中打开多个文…...

SPI 通信协议

1. SPI通信 1. 什么是SPI通信协议 2. SPI的通信过程 在一开始会先把发送缓冲器的数据&#xff08;8位&#xff09;。一次性放到移位寄存器里。 移位寄存器会一位一位发送出去。但是要先放到锁存器里。然后从机来读取。从机的过程也一样。当移位寄存器的数据全部发送完。其实…...

【图像处理】使用各向异性滤波器和分割图像处理从MRI图像检测脑肿瘤(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

5个适合初学者的初级网络安全工作,网络安全就业必看

前言 网络安全涉及保护计算机系统、网络和数据免受未经授权的访问、破坏和盗窃 - 防止数字活动和数据访问的中断 - 同时也保护用户的资产和隐私。鉴于公共事业、医疗保健、金融以及联邦政府等行业的网络犯罪攻击不断升级&#xff0c;对网络专业人员的需求很高&#xff0c;这并…...

Kafka核心原理

1、Topic的分片和副本机制 分片作用&#xff1a; 解决单台节点容量有限的问题&#xff0c;节点多&#xff0c;效率提升&#xff0c;吞吐量提升。通过分片&#xff0c;将一个大的容器分解为多个小的容器&#xff0c;分布在不同的节点上&#xff0c;从而实现分布式存储。 分片…...

探秘前后端开发世界:猫头虎带你穿梭编程的繁忙街区,解锁全栈之路

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

洛谷_分支循环

p2433 问题 5 甲列火车长 260 米&#xff0c;每秒行 12 米&#xff1b;乙列火车长220 米&#xff0c;每秒行 20 米&#xff0c;两车相向而行&#xff0c;从两车车头相遇时开始计时&#xff0c;多长时间后两车车尾相离&#xff1f;已知答案是整数。 计算方式&#xff1a;两车车…...

MySQL数据库入门到精通——进阶篇(3)

黑马程序员 MySQL数据库入门到精通——进阶篇&#xff08;3&#xff09; 1. 锁1.1 锁-介绍1.2 锁-全局锁1.3 锁-表级锁1.3.1 表级锁-表锁1.3.2 表级锁元数据锁( meta data lock&#xff0c;MDL)1.3.3 表级锁-意向锁1.3.4 表级锁意向锁测试 1.4 锁-行级锁1.4.1 行级锁-行锁1.4.2…...

Mind Map:大语言模型中的知识图谱提示激发思维图10.1+10.2

知识图谱提示激发思维图 摘要介绍相关工作方法第一步&#xff1a;证据图挖掘第二步&#xff1a;证据图聚合第三步&#xff1a;LLM Mind Map推理 实验实验设置医学问答长对话问题使用KG的部分知识生成深入分析 总结 摘要 LLM通常在吸收新知识的能力、generation of hallucinati…...

[引擎开发] 杂谈ue4中的Vulkan

接触Vulkan大概也有大半年&#xff0c;概述一下自己这段时间了解到的东西。本文实际上是杂谈性质而非综述性质&#xff0c;带有严重的主观认知&#xff0c;因此并没有那么严谨。 使用Vulkan会带来什么呢&#xff1f;简单来说就是对底层更好的控制。这意味着我们能够有更多的手段…...

docker--redis容器部署及地理空间API的使用示例-II

文章目录 Redis 地理位置类型API命令操作示例JAVA使用示例导入依赖RedisTemplate 操作GeoData示例CityInfo实体类Geo操作接口类Geo操作接口实现类SpringBoot测试类RedissonClient 操作GeoData示例docker–redis容器部署及与SpringBoot整合 docker–redis容器部署及地理空间API的…...

Vue中如何进行文件浏览与文件管理

Vue中的文件浏览与文件管理 文件浏览与文件管理是许多Web应用程序中常见的功能之一。在Vue.js中&#xff0c;您可以轻松地实现文件浏览和管理功能&#xff0c;使您的应用程序更具交互性和可用性。本文将向您展示如何使用Vue.js构建文件浏览器和文件管理功能&#xff0c;以及如…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

Xshell远程连接Kali(默认 | 私钥)Note版

前言:xshell远程连接&#xff0c;私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

Reasoning over Uncertain Text by Generative Large Language Models

https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...