Java中时间格式化怎么实现?(java格式化日期格式)

createh52个月前 (02-01)技术教程8

前言

在上一篇文章中,给大家讲解了Java里的Date和Calendar类,大家应该学到了如何创建时间日期对象,并利用该对象进行一些关于时间的操作。

但是在上一篇文章中,我们知道,默认情况下构造出来的时间对象,它的时间格式并不适合我们阅读。并且在开发时,pc端、Android端、iOS端等展示的时间格式可能也并不完全一样,那么我们有没有办法进行时间格式的自定义设置呢?

这个需求当然是可以实现的,这就需要用到我们今天要学习的内容,这就是时间的格式化!

全文大约 【3200】字 不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富的案例及配图,让你更好地理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考......

一. 时间模式字符串

在进行时间格式化之前,我们先来了解一下时间模式字符串。

所谓的时间模式字符串,就是可以用来指定时间格式的一种模式,在此模式中,一些ASCII字母被保留为模式字母,具有特别的含义,如下表所示:

上面表格中的这些符号,我们尽量要记住,因为开发时经常会用到这些符号。 掌握了这些符号之后,我们就可以继续学习日期与时间的格式化技能了。

接下来我们通过一个案例来看看printf()方法是怎么进行格式化时间的。

printf()方法进行格式化时,需要结合上表中的几个符号。但是说实话,这种格式化方式并不是很常用,主要适用于少量的个别地方。如果我们的项目中有多处需要进行格式化的地方,尽量还是不要使用这种方式。因为如果你需要重复提供日期,利用这种方式来格式化时间就有点复杂,且不好进行后期的维护。

三. DateFormat类

其实我们在Java项目中对日期进行格式化,主要是利用一些日期格式化类,比如DateFormat及其子类。

1. 简介

DateFormat是负责日期/时间格式化的抽象类,它可以用与语言无关的方式格式化并解析日期或时间。它的子类(如SimpleDateFormat)允许进行日期的格式化,将日期转为文本;也可以进行文本的解析,将文本转为日期。

我们在创建 DateFormat对象时不能使用 new关键字,要使用 DateFormat类中的getDateInstance()静态方法,如下所示:

2. 静态常量

DateFormat中给我们提供了几个常用的静态常量,用于方便我们进行格式化样式的设置,如下所示:

● SHORT:纯数字,如12.5.10 或 5:30pm;

● MEDIUM:较长,如May 10,2023;

● LONG:更长,如May 12,2023 或 11:15:32am;

● FULL:完全指定,如Tuesday、May 10、2022 AD 或 11:l5:42am CST。

3. 常用方法

我们在创建了一个DateFormat对象后,就可以使用该对象中的方法来对日期/时间进行格式化了,DateFormat中的常用方法如下表所示:

4. 基本使用

接下来我们通过一个案例来看看DateFormat的用法。这个案例,主要是给大家介绍DateFormat类的方法与静态常量该如何使用,对日期进行不同风格的格式化。

四. SimpleDateFormat类

1. 简介

虽然我们已经有了DateFormat,但有时候这个类并不能满足我们的实际开发需求。此时我们可以进一步使用它的子类,比如SimpleDateFormat来进行更多的操作。

SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类,它具有格式化(日期转文本)、解析(文本转日期)和规范化的功能。相对DateFormat来说,SimpleDateFormat具有更高的灵活性,可以让我们选择任何自定义的日期/时间格式,进行个性化设置。

2. 构造方法

SimpleDateFormat是一个具体的子类,所以我们是可以通过new的方式来创建对象的。SimpleDateFormat类为我们提供了如下4个构造方法:

● SimpleDateFormat():用默认的格式和语言环境,构造一个SimpleDateFormat对象;

● SimpleDateFormat(String pattern):用指定的格式和默认的语言环境,构造一个SimpleDateF ormat对象;

● SimpleDateFormat(String pattern,Locale locale):用指定的格式和指定的语言环境,构造一个 SimpleDateFormat对象;

● SimpleDateFormat(String pattern,DateFormatSymbols formatSymbols):用指定的格式和指定的格式化语法来构造一个SimpleDateFormat对象。

3. 自定义格式化常用字母

SimpleDateFormat自定义格式中常用的字母及含义如表 2 所示。

4. 基本使用

接下来我们通过一个案例,来展示SimpleDateFormat的格式化和解析用法。

在上述案例中,format()方法用于将Date格式化为String字符串,parse()方法用于将String字符串解析为Date类型。其中yyyy是完整的公元年,MM是月份,dd是日期,HH:mm:ss 是时、分、秒。这里有的格式大写,有的格式小写,例如MM是月份,mm是分,HH是24小时制,而hh则是12小时制。

五. 结语

至此我们就把日期的格式化操作给大家讲解完毕了。今天的内容其实并不难,大家只需要把一些常用的构造方式及方法、常量记一下即可。


更多程序员相关/IT技术技术干货,关注@千锋教育

相关文章

java的时间戳的长度为什么是固定的?它是如何做到的

我们经常会使用java的当前时间的毫秒数来生产一个唯一性代码,它很好用,因为它是13位,长度很短,可以作为系统唯一的订单号、产品唯一编码等,但是我一直不明白它的长度为什么一直是13位,而且是固定的。我...

「Java工具类」java8时间日期工具类,整个项目有它就足够了

介绍语本头条号主要是Java常用关键技术点,通用工具类的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+...

时间管理大师:Java DateTimeFormatter.ofPattern 的幽默指南

前言在这个快节奏的世界里,时间就像一张消费券,谁都想把它花得更值!想象一下,能够像一个时间管理大师一样,随心所欲地掌控每一秒。Java 的 DateTimeFormatter.ofPattern 就是...

java小知识-纳秒(纳秒等于多少)

作者:京东物流 崔冬冬一、System.nanoTime()java中,有这么一个方法System.nanoTime(),你用过吗?二、与System.currentTimeMillis()对比Sys...

讲讲Java8新的Date Time(javanew date)

前言在Java 8中, 整合了许多 Joda-Time 的特性而开发的 java.time 支持全新的日期和时间API。Date-Time API 由主包 java.time 和四个子包组成:包名描述...

打通 JAVA 与内核系列之 一 ReentrantLock 锁的实现原理

写JAVA代码的同学都知道,JAVA里的锁有两大类,一类是synchronized锁,一类是concurrent包里的锁(JUC锁)。其中synchronized锁是JAVA语言层面提供的能力,在此不...