Spring项目日期数据的类型转换

news/2024/10/19 23:45:30/

前言

需要用到工具类SimpleDateFormat

1. 哪个依赖类提供:

SimpleDateFormat 是 Java 标准库中的一个类,属于 java.text 包。它不依赖于外部库,是 Java 核心 API 的一部分。

2. 原理解释:

SimpleDateFormatjava.text.DateFormat 的一个具体实现,它用于格式化和解析日期。这个类允许开发者根据指定的模式来格式化 java.util.Date 对象为字符串,或者将符合特定模式的字符串解析为 Date 对象。模式由一系列模式字符组成,每个模式字符代表日期时间的某个组成部分,如年份、月份、天数等。

2.1 使用方法:

2.1.1 格式化日期为字符串:

java">import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleDateFormatExample {public static void main(String[] args) {// 创建 SimpleDateFormat 对象,并指定日期格式SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 创建一个 Date 对象Date date = new Date();// 使用 SimpleDateFormat 格式化 Date 对象String formattedDate = dateFormat.format(date);// 输出格式化后的日期字符串System.out.println(formattedDate);}
}

2.1.2 解析字符串为日期:

java">import java.text.SimpleDateFormat;
import java.util.Date;public class SimpleDateFormatParseExample {public static void main(String[] args) throws Exception {// 创建 SimpleDateFormat 对象,并指定日期格式SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");// 需要解析的日期字符串String dateString = "2024-04-05";// 使用 SimpleDateFormat 解析字符串Date date = dateFormat.parse(dateString);// 输出解析后的 Date 对象System.out.println(date);}
}

3. 应用场景:

  1. Web 开发:在生成 HTTP 响应时,将服务器上的日期数据格式化为字符串,以便客户端能够正确解析和展示。
  2. 日志记录:格式化日期,以便在日志文件中以统一的格式显示时间戳。
  3. 数据交换:在不同系统或模块之间交换日期数据时,将日期对象转换为字符串格式。
  4. 用户界面展示:在应用程序的用户界面上展示日期,根据用户偏好或国际化要求格式化日期。
  5. 数据存储:在将日期数据存储到不支持日期对象的系统中(如某些文本文件或数据库字段)时,将其转换为字符串。

使用 SimpleDateFormat 时需要注意的是,它是线程不安全的。因此,在多线程环境中使用时,需要确保适当的同步控制,或者使用 SimpleDateFormat 的线程安全的替代品,如 Java 8 中的 java.time.format.DateTimeFormatter

总结

通常在需要把日期数据返回给前端时用到,比如说MySQL日期类型为date,获取下来可能会是Fri Apr 05 00:00:00 CST 2024这种数据,使用这个工具类写上指定的日期格式yyyy-MM-dd,调用format方法传入日期常量就可以把date数据Fri Apr 05 00:00:00 CST 2024格式化为2024-04-05字符串类型。

如果需要把字符串转为date类型,则需要在工具类上写上与字符串相符合的日期格式,再调用工具类的parse 方法传入字符串,实现把字符串解析为date类型


http://www.ppmy.cn/news/1426949.html

相关文章

javase__进阶 day13stream流和方法引用

1.不可变集合 1.1 什么是不可变集合 ​ 是一个长度不可变,内容也无法修改的集合 1.2 使用场景 ​ 如果某个数据不能被修改,把它防御性地拷贝到不可变集合中是个很好的实践。 ​ 当集合对象被不可信的库调用时,不可变形式是安全的。 简单…

密码学 | 椭圆曲线密码学 ECC 入门(四)

目录 正文 1 曲线方程 2 点的运算 3 求解过程 4 补充:有限域 ⚠️ 知乎:【密码专栏】动手计算双线性对(中) - 知乎 ⚠️ 写在前面:本文属搬运博客,自己留着学习。注意,这篇博客与前三…

MetaGPT:一个多智能体框架,将不同的GPT模型分配到不同的角色中,形成一个协作的软件实体

MetaGPT是一个多智能体框架,旨在通过将不同的GPT模型分配到不同的角色中,形成一个协作的软件实体,以解决复杂任务3。它由中国团队开发,主要应用于软件开发等场景,利用标准作业程序(SOP)来协调基于大语言模型的多智能体系统,实现元编程技术5。MetaGPT的架构分为两层:基…

解决navicat远程连接mysql 很慢(首次)

通过navicat链接的测试服务器的mysql数据库连接打开的很慢(间隔一段时间没使用的情况,navicat 链接会自动断开,再次链接就很慢,之后就正常,平时没在意,今天有空就给他解决下),但是连接本地的mys…

Python练习Day2

水仙花数 说明:水仙花数也被称为超完全数字不变数、自恋数、自幂数、阿姆斯特朗数,它是一个3位数,该数字每个位上数字的立方之和正好等于它本身,例如:1^3 5^3 3^3153。 # 水仙花数 sum 0 num int(input("请输…

【Cookie,Session,Token,JWT的区别】

一、Cookie Cookie 是在 HTTP 协议下,维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器上的小文本数据文件,它可以包含有关用户的信息。cookie是不可跨域的,每个cookie都会绑定一个单一的域名,并只能在指…

C#硬件接口开发------一文了解WMI

🎈个人主页:靓仔很忙i 💻B 站主页:👉B站👈 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:C# 硬件接口开发 🤝希望本文对您有所裨益,如有不足…

UE5增强输入系统 Enhanced Input

关键字: Enhanced Input 、 输入、映射、事件、鼠标、键盘、键鼠、动作、Trigger、触发器、 疑问: 新输入系统怎么做一个基础的案例?Trigger修改器中每个项都是什么功能?功能边界问题:如时刻、时段、单次事件、持续事…