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 的核心,里面封装了<Router>,<Route>,<Switch>等核心组件,实现了从路由的改变到组件的更新…...
python-pytorch 利用pytorch对堆叠自编码器进行训练和验证
利用pytorch对堆叠自编码器进行训练和验证 一、数据生成二、定义自编码器模型三、训练函数四、训练堆叠自编码器五、将已训练的自编码器级联六、微调整个堆叠自编码器 一、数据生成 随机生成一些数据来模拟训练和验证数据集: import torch# 随机生成数据 n_sample…...

制作 3 档可调灯程序编写
PWM 0~255 可以将数据映射到0 75 150 225 尽可能均匀电压间隔...
源码分享-M3U8数据流ts的AES-128解密并合并---GoLang实现
之前使用C语言实现了一次,见M3U8数据流ts的AES-128解密并合并。 学习了Go语言后,又用Go重新实现了一遍。源码如下,无第三方库依赖。 package mainimport ("crypto/aes""crypto/cipher""encoding/binary"&quo…...
CSDN Q: “这段代码算是在STC89C52RC51单片机上完成PWM呼吸灯了吗?“
这是 CSDN上的一个问题 这段代码算是在STC89C52RC51单片机上完成PWM呼吸灯了吗,还是说得用上定时器和中断函数#include <regx52.h> 我个人认为: 效果上来说, 是的! 码以 以Time / 100-Time 调 Duty, 而 for i loop成 Period, 加上延时, 实现了 PWM周期, 虽然…...

Linux系统编程系列之线程池
Linux系统编程系列(16篇管饱,吃货都投降了!) 1、Linux系统编程系列之进程基础 2、Linux系统编程系列之进程间通信(IPC)-信号 3、Linux系统编程系列之进程间通信(IPC)-管道 4、Linux系统编程系列之进程间通信-IPC对象 5、Linux系统…...

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

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

【图像处理】使用各向异性滤波器和分割图像处理从MRI图像检测脑肿瘤(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

5个适合初学者的初级网络安全工作,网络安全就业必看
前言 网络安全涉及保护计算机系统、网络和数据免受未经授权的访问、破坏和盗窃 - 防止数字活动和数据访问的中断 - 同时也保护用户的资产和隐私。鉴于公共事业、医疗保健、金融以及联邦政府等行业的网络犯罪攻击不断升级,对网络专业人员的需求很高,这并…...
Kafka核心原理
1、Topic的分片和副本机制 分片作用: 解决单台节点容量有限的问题,节点多,效率提升,吞吐量提升。通过分片,将一个大的容器分解为多个小的容器,分布在不同的节点上,从而实现分布式存储。 分片…...

探秘前后端开发世界:猫头虎带你穿梭编程的繁忙街区,解锁全栈之路
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...
洛谷_分支循环
p2433 问题 5 甲列火车长 260 米,每秒行 12 米;乙列火车长220 米,每秒行 20 米,两车相向而行,从两车车头相遇时开始计时,多长时间后两车车尾相离?已知答案是整数。 计算方式:两车车…...

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

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

[引擎开发] 杂谈ue4中的Vulkan
接触Vulkan大概也有大半年,概述一下自己这段时间了解到的东西。本文实际上是杂谈性质而非综述性质,带有严重的主观认知,因此并没有那么严谨。 使用Vulkan会带来什么呢?简单来说就是对底层更好的控制。这意味着我们能够有更多的手段…...
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中,您可以轻松地实现文件浏览和管理功能,使您的应用程序更具交互性和可用性。本文将向您展示如何使用Vue.js构建文件浏览器和文件管理功能,以及如…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...

PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...

如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...