四川哪家网站做的最好,深圳网站制作公司多少钱,如何备份wordpress数据库,南宁市建设局网站哈喽#xff0c;各位小伙伴们#xff0c;你们好呀#xff0c;我是喵手。运营社区#xff1a;C站/掘金/腾讯云#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点#xff0c;并以文字的形式跟大家一起交流#xff0c;互相学习#xff0c;一… 哈喽各位小伙伴们你们好呀我是喵手。运营社区C站/掘金/腾讯云欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点并以文字的形式跟大家一起交流互相学习一个人虽可以走的更快但一群人可以走的更远。 我是一名后端开发爱好者工作日常接触到最多的就是Java语言啦所以我都尽量抽业余时间把自己所学到所会的通过文章的形式进行输出希望以这种方式帮助到更多的初学者或者想入门的小伙伴们同时也能对自己的技术进行沉淀加以复盘查缺补漏。 小伙伴们在批阅的过程中如果觉得文章不错欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持 哈喽各位小伙伴们你们好呀我是喵手。 今天我要给大家分享一些自己日常学习到的一些知识点并以文字的形式跟大家一起交流互相学习一个人虽可以走的更快但一群人可以走的更远。 我是一名后端开发爱好者工作日常接触到最多的就是Java语言啦所以我都尽量抽业余时间把自己所学到所会的通过文章的形式进行输出希望以这种方式帮助到更多的初学者或者想入门的小伙伴们同时也能对自己的技术进行沉淀加以复盘查缺补漏。 小伙伴们在批阅的过程中如果觉得文章不错欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持 前言
在Java开发中日期时间的处理一直是一个比较困难的问题。为了方便开发者对日期时间做格式化和解析Java提供了SimpleDateFormat类可以轻松地完成各种日期时间格式的转化。
摘要
SimpleDateFormat类是Java提供的一个日期时间格式化类它可以将日期时间转化为指定格式的字符串或者将字符串解析为日期时间。SimpleDateFormat类可以对日期时间进行各种格式化处理比如将日期时间格式化为yyyy-MM-dd HH:mm:ss、yyyy年MM月dd日等格式。
SimpleDateFormat类
简介
SimpleDateFormat类位于java.text包中它继承自DateFormat抽象类。DateFormat是一个日期时间格式化抽象类而SimpleDateFormat则是DateFormat的实现类之一它通过模式字符串来定义日期时间的格式。
SimpleDateFormat类的构造方法有两个其中一个是默认构造方法另一个是根据指定的模式字符串创建SimpleDateFormat对象。通过设置不同的模式字符串SimpleDateFormat类可以支持各种日期时间格式的转化。
源代码解析
SimpleDateFormat类的源代码比较复杂但核心代码可以分为两部分构造方法和格式化/解析方法。 构造方法
SimpleDateFormat类有两个构造方法其中一个是默认构造方法另一个是根据指定的模式字符串创建SimpleDateFormat对象。下面是根据模式字符串创建SimpleDateFormat对象的构造方法
public SimpleDateFormat(String pattern) {this(pattern, Locale.getDefault(Locale.Category.FORMAT));
}该构造方法通过传入的模式字符串pattern和默认Locale对象来创建SimpleDateFormat对象。Locale对象表示了一个特定的语言环境用于控制日期时间的格式化和解析。通过设置不同的Locale对象SimpleDateFormat类可以支持各种语言地区的日期时间格式。下面是一个示例
SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd HH:mm:ss, Locale.US);
System.out.println(sdf.format(new Date())); 格式化/解析方法
SimpleDateFormat类提供了两种方法格式化方法和解析方法。格式化方法将日期时间转化为指定格式的字符串解析方法则将字符串解析为日期时间。下面是SimpleDateFormat类的两个核心方法 格式化方法 SimpleDateFormat类的格式化方法为format()它用于将日期时间格式化为指定格式的字符串。下面是一个示例 SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);System.out.println(sdf.format(new Date())); 在这个示例中我们创建了一个SimpleDateFormat对象sdf它的模式字符串为yyyy-MM-dd HH:mm:ss然后通过format()将当前日期时间格式化为指定格式的字符串。 解析方法 SimpleDateFormat类的解析方法为parse()它用于将字符串解析为日期时间。下面是一个示例 SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);Date date sdf.parse(2022-01-01 12:00:00);System.out.println(date); 在这个示例中我们创建了一个SimpleDateFormat对象sdf它的模式字符串为yyyy-MM-dd HH:mm:ss然后通过parse()将字符串2022-01-01 12:00:00解析为日期时间。
应用场景案例
SimpleDateFormat类的应用场景非常广泛。在实际开发中我们经常需要将日期时间格式化为指定格式的字符串或者将字符串解析为日期时间。下面是一些使用SimpleDateFormat类的应用场景
将日期时间格式化为指定格式的字符串。比如将日期时间格式化为yyyy-MM-dd、yyyy年MM月dd日等格式。 SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);System.out.println(sdf.format(new Date())); SimpleDateFormat sdf new SimpleDateFormat(yyyy年MM月dd日);System.out.println(sdf.format(new Date())); 将字符串解析为日期时间。比如将字符串2022-01-01、2022年01月01日等解析为Date对象。 SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd);Date date sdf.parse(2022-01-01);System.out.println(date); // 输出格式为Sat Jan 01 00:00:00 CST 2022SimpleDateFormat sdf new SimpleDateFormat(yyyy年MM月dd日);Date date sdf.parse(2022年01月01日);System.out.println(date); // 输出格式为Sat Jan 01 00:00:00 CST 2022优缺点分析
优点
简单易用。SimpleDateFormat类提供了简单易用的API通过设置不同的模式字符串就可以完成各种日期时间格式的转化。支持各种语言地区。SimpleDateFormat类可以通过设置不同的Locale对象来支持各种语言地区的日期时间格式。这在国际化开发中非常有用。
缺点
线程不安全。SimpleDateFormat类是线程不安全的如果多个线程同时访问同一个SimpleDateFormat对象可能会导致日期时间格式混乱。性能较差。SimpleDateFormat类的性能较差特别是对于频繁调用的场景可能会对程序性能产生影响。
类代码方法介绍
SimpleDateFormat类的常用方法如下
方法名描述SimpleDateFormat(String pattern)根据指定的模式字符串创建一个SimpleDateFormat对象。format(Date date)将指定日期格式化为字符串。parse(String source)将指定字符串解析为日期。setLenient(boolean lenient)指定解析时是否严格按照模式字符串进行解析默认为宽松解析。setTimeZone(TimeZone zone)指定时区。toLocalizedPattern()返回本地化的模式字符串。toPattern()返回模式字符串。clone()克隆当前SimpleDateFormat对象。
测试用例
下面是一个针对SimpleDateFormat类的测试用例我们可以通过该测试用例来验证SimpleDateFormat类的各种功能是否正常。
测试代码演示
package com.example.javase.se.classes;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.TimeZone;/*** Author ms* Date 2023-11-03 23:08*/
public class SimpleDateFormatTest {public static void main(String[] args) throws Exception {// 测试格式化方法SimpleDateFormat sdf1 new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);SimpleDateFormat sdf2 new SimpleDateFormat(yyyy年MM月dd日 HH时mm分ss秒);System.out.println(sdf1.format(new Date()));System.out.println(sdf2.format(new Date()));// 测试解析方法SimpleDateFormat sdf3 new SimpleDateFormat(yyyy-MM-dd);SimpleDateFormat sdf4 new SimpleDateFormat(yyyy年MM月dd日);Date date1 sdf3.parse(2023-01-01);Date date2 sdf4.parse(2023年01月01日);System.out.println(date1);System.out.println(date2);// 测试设置Locale对象SimpleDateFormat sdf5 new SimpleDateFormat(yyyy年MM月dd日, Locale.US);System.out.println(sdf5.format(new Date()));// 测试设置时区SimpleDateFormat sdf6 new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);sdf6.setTimeZone(TimeZone.getTimeZone(GMT8));System.out.println(sdf6.format(new Date()));// 测试宽松解析SimpleDateFormat sdf7 new SimpleDateFormat(yyyy-MM-dd);sdf7.setLenient(false);try {Date date3 sdf7.parse(2023-02-30);} catch (Exception e) {System.out.println(解析失败 e.getMessage());}}
}通过执行以上测试用例我们可以验证SimpleDateFormat类的各种功能是否正常。例如我们可以测试格式化方法和解析方法是否能够正确转化日期时间是否能够根据不同的Locale对象支持各种语言格式是否能够通过设置时区改变日期时间的显示以及是否能够通过设置宽松解析来处理非法日期时间等等。
测试结果 根据如上测试用例本地测试结果如下仅供参考你们也可以自行修改测试用例或者添加更多的测试数据或测试方法进行熟练学习以此加深理解。 测试代码分析 根据如上测试用例在此我给大家进行深入详细的解读一下测试代码以便于更多的同学能够理解并加深印象。
该代码主要是对 Java 的 SimpleDateFormat 类进行测试和演示主要包括以下几个方面 测试格式化方法创建 SimpleDateFormat 对象并指定要格式化的日期格式使用 format 方法将 Date 对象按照指定格式输出。 测试解析方法创建 SimpleDateFormat 对象并指定要解析的日期格式使用 parse 方法将字符串转化为对应的 Date 对象。 测试设置 Locale 对象在创建 SimpleDateFormat 对象时可以传入一个 Locale 对象用于指定输出的语言环境。 测试设置时区通过 setTimezone 方法可以设置 SimpleDateFormat 使用指定的时区进行日期格式化和解析。 测试宽松解析通过 setLenient 方法可以设置 SimpleDateFormat 在解析日期时是否严格匹配指定格式如果不严格匹配则会自动调整日期。
… …
文末
好啦以上就是我这期的全部内容如果有任何疑问欢迎下方留言哦咱们下期见。
… …
学习不分先后知识不分多少事无巨细当以虚心求教三人行必有我师焉
wished for you successed ⭐️若喜欢我就请关注我叭。
⭐️若对您有用就请点赞叭。
⭐️若有疑问就请评论留言告诉我叭。
… …
文末
好啦以上就是我这期的全部内容如果有任何疑问欢迎下方留言哦咱们下期见。
… …
学习不分先后知识不分多少事无巨细当以虚心求教三人行必有我师焉
wished for you successed ⭐️若喜欢我就请关注我叭。
⭐️若对您有用就请点赞叭。
⭐️若有疑问就请评论留言告诉我叭。