千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:重庆千锋IT培训  >  技术干货  >  从零开始学Java之时间格式化怎么实现?

从零开始学Java之时间格式化怎么实现?

来源:千锋教育
发布人:lxl
时间: 2023-05-16 10:27:51

  一. 时间模式字符串

  在进行时间格式化之前,我们先来了解一下时间模式字符串。所谓的时间模式字符串,就是可以用来指定时间格式的一种模式,在此模式中,一些ASCII字母被保留为模式字母,具有特别的含义,如下表所示:

图片1

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

  二. printf()格式化方法

  如果我们只是在项目的个别某个地方,想要简单地实现日期时间的格式化,其实使用printf()方法就可以。printf()方法格式化时间和日期时,需要使用两个字母进行格式化操作,一般是以 %t 开头,且以下面表格中的某个字母结尾。

图片2

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

import java.util.Date;

/**
* @author 一一哥Sun
*/

public class Demo07 {

public static void main(String[] args) {
// 初始化 Date 对象
Date date = new Date();
//c:全部日期和时间
System.out.printf("全部日期和时间信息:%tc%n", date);
//f:年-月-日
System.out.printf("年-月-日的格式:%tF%n", date);
//d:月/日/年
System.out.printf("月/日/年的格式:%tD%n", date);
//r:HH:MM:SS PM
System.out.printf("HH:MM:SS PM的格式(12时制):%tr%n", date);
//t:HH:MM:SS格式(24时制)
System.out.printf("HH:MM:SS的格式(24时制):%tT%n", date);
//R:HH:MM格式(24时制)
System.out.printf("HH:MM的格式(24时制):%tR", date);

//用格式化字符串,指出要被格式化的参数索引,索引必须紧跟在%后面,而且必须以$结束
//使用toString()显示日期和时间
System.out.printf("%1$s %2$tB %2$td, %2$tY","Due date:", date);
}
}

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

  三. DateFormat类

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

  简介

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

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

DateFormat df = DateFormat.getDatelnstance();

   静态常量

  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。

  常用方法

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

图片3

  基本使用

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

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

/**
* @author 一一哥Sun
*/

public class Demo08 {

public static void main(String[] args) {
// 获取不同格式化风格和中国环境的日期
DateFormat df1 = DateFormat.getDateInstance(DateFormat.SHORT, Locale.CHINA);
//DateFormat df2 = DateFormat.getDateInstance(DateFormat.FULL, Locale.CHINA);
//DateFormat df3 = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.CHINA);
//DateFormat df4 = DateFormat.getDateInstance(DateFormat.LONG, Locale.CHINA);

// 将不同格式化风格的日期格式化为日期字符串
String date = df1.format(new Date());

// 获取不同格式化风格和中国环境的时间
DateFormat df2 = DateFormat.getTimeInstance(DateFormat.SHORT, Locale.CHINA);
// 将不同格式化风格的时间格式化为时间字符串
String time = df2.format(new Date());

// 输出日期和时间
System.out.println("SHORT格式:" + date+" "+time);
}

}

   四. SimpleDateFormat类

  简介

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

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

  构造方法

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

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

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

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

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

  自定义格式化常用字母

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

图片4

  基本使用

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

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
* @author 一一哥Sun
*/

public class Demo09 {

public static void main(String[] args) {
//设置日期时间格式化模式,这个模式是根据需求自定义展示的,也可以是"yyyy年MM月dd日 E HH点 mm分 ss秒"等格式
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//进行日期格式化
String date = format.format(new Date());
System.out.println("格式后的结果:" + date);

try {
//解析日期,将一个时间字符串解析为Date类型,这里有可能会产生解析异常
String time="2022-02-12 17:30:39";
Date date2 = format.parse(time);
System.out.println("解析后的结果:" + date2);
} catch (ParseException e) {
e.printStackTrace();
}
}
}

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

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

如何进行mysql数据备份?

2023-05-30

从零开始学Java之Java中的内部类是怎么回事?

2023-05-29

什么是事件流以及事件流的传播机制 ?

2023-05-29

最新文章NEW

什么是servlet的生命周期?servlet请求处理流程是怎样的?

2023-05-30

在java中,super关键字怎样使用

2023-05-29

什么是JavaScript伪数组?

2023-05-25

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>