亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

學習Java之如何對時間進行格式化

 更新時間:2023年05月31日 10:07:13   作者:一一哥Sun  
當我們在默認情況下構(gòu)造出來的時間對象,它的時間格式并不適合我們閱讀,并且在開發(fā)時,pc端、Android端、iOS端等展示的時間格式可能也并不完全一樣,本文就從這幾個問題給大家介紹如何對時間進行格式化,感興趣的同學可以借鑒一下

一. 時間模式字符串

在進行時間格式化之前,我們先來了解一下時間模式字符串。所謂的時間模式字符串,就是可以用來指定時間格式的一種模式,在此模式中,一些ASCII字母被保留為模式字母,具有特別的含義,如下表所示:

字母描述示例
y四位年份2020
M月份July or 07
d一個月的日期10
hA.M./P.M. (1~12)格式小時12
H一天中的小時 (0~23)22
m分鐘數(shù)30
s秒數(shù)55
S毫秒數(shù)234
E星期幾Tuesday
D一年中的日子360
F一個月中第幾周的周幾2 (second Wed. in July)
w一年中第幾周40
W一個月中第幾周1
aA.M.(上午)/P.M.(下午)PM
k一天中的小時(1~24)24
KA.M./P.M. (0~11)格式小時10
z時區(qū)Eastern Standard Time
'文字定界符Delimiter

上面表格中的這些符號,我們盡量要記住,因為開發(fā)時經(jīng)常會用到這些符號。掌握了這些符號之后,我們就可以繼續(xù)學習日期與時間的格式化技能了。

二. printf()格式化方法

如果我們只是在項目的個別某個地方,想要簡單地實現(xiàn)日期時間的格式化,其實使用printf()方法就可以。printf()方法格式化時間和日期時,需要使用兩個字母進行格式化操作,一般是以 %t 開頭,且以下面表格中的某個字母結(jié)尾。

轉(zhuǎn) 換 符說 明示 例
c包括全部日期和時間信息星期六 十月 27 14:21:20 CST 2007
F"年-月-日"格式2007-10-27
D"月/日/年"格式10/27/07
r"HH:MM:SS PM"格式(12時制)02:25:51 下午
T"HH:MM:SS"格式(24時制)14:28:16
R"HH:MM"格式(24時制)14:28

接下來我們通過一個案例來看看printf()方法是怎么進行格式化時間的。

import java.util.Date;
/**
 * @author 
 */
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);
        //用格式化字符串,指出要被格式化的參數(shù)索引,索引必須緊跟在%后面,而且必須以$結(jié)束
	//使用toString()顯示日期和時間
	System.out.printf("%1$s %2$tB %2$td, %2$tY","Due date:", date);
    }
}

printf()方法進行格式化時,需要結(jié)合上表中的幾個符號。但是說實話,這種格式化方式并不是很常用,主要適用于少量的個別地方。如果我們的項目中有多處需要進行格式化的地方,盡量還是不要使用這種方式。因為如果你需要重復(fù)提供日期,利用這種方式來格式化時間就有點復(fù)雜,且不好進行后期的維護。

三. DateFormat類

其實我們在Java項目中對日期進行格式化,主要是利用一些日期格式化類,比如DateFormat及其子類。

1. 簡介

DateFormat是負責日期/時間格式化的抽象類,它可以用與語言無關(guān)的方式格式化并解析日期或時間。它的子類(如SimpleDateFormat)允許進行日期的格式化,將日期轉(zhuǎn)為文本;也可以進行文本的解析,將文本轉(zhuǎn)為日期。
我們在創(chuàng)建 DateFormat對象時不能使用 new關(guān)鍵字,要使用 DateFormat類中的getDateInstance()靜態(tài)方法,如下所示:

DateFormat df = DateFormat.getDatelnstance();

2. 靜態(tài)常量

DateFormat中給我們提供了幾個常用的靜態(tài)常量,用于方便我們進行格式化樣式的設(shè)置,如下所示:

  • SHORT:純數(shù)字,如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. 常用方法

我們在創(chuàng)建了一個DateFormat對象后,就可以使用該對象中的方法來對日期/時間進行格式化了,DateFormat中的常用方法如下表所示:

方法描述
String format(Date date)將 Date 格式化日期/時間字符串
Calendar getCalendar()獲取與此日期/時間格式相關(guān)聯(lián)的日歷
static DateFormat getDateInstance()獲取具有默認格式化風格和默認語言環(huán)境的日期格式
static DateFormat getDateInstance(int style)獲取具有指定格式化風格和默認語言環(huán)境的日期格式
static DateFormat getDateInstance(int style, Locale locale)獲取具有指定格式化風格和指定語言環(huán)境的日期格式
static DateFormat getDateTimeInstance()獲取具有默認格式化風格和默認語言環(huán)境的日期/時間格式
static DateFormat getDateTimeInstance(int dateStyle,int timeStyle)獲取具有指定日期/時間格式化風格和默認語言環(huán)境的日期/時間格式
static DateFormat getDateTimeInstance(int dateStyle,int timeStyle,Locale locale)獲取具有指定日期/時間格式化風格和指定語言環(huán)境的日期/時間格式
static DateFormat getTimeInstance()獲取具有默認格式化風格和默認語言環(huán)境的時間格式
static DateFormat getTimeInstance(int style)獲取具有指定格式化風格和默認語言環(huán)境的時間格式
static DateFormat getTimeInstance(int style, Locale locale)獲取具有指定格式化風格和指定語言環(huán)境的時間格式
void setCalendar(Calendar newCalendar)為此格式設(shè)置日歷
Date parse(String source)將給定的字符串解析成日期/時間

4. 基本使用

接下來我們通過一個案例來看看DateFormat的用法。這個案例,主要是給大家介紹DateFormat類的方法與靜態(tài)常量該如何使用,對日期進行不同風格的格式化。

import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
/**
 * @author
 */
public class Demo08 {
    public static void main(String[] args) {
	// 獲取不同格式化風格和中國環(huán)境的日期
	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());
	// 獲取不同格式化風格和中國環(huán)境的時間
	DateFormat df2 = DateFormat.getTimeInstance(DateFormat.SHORT, Locale.CHINA);
	// 將不同格式化風格的時間格式化為時間字符串
	String time = df2.format(new Date());
	// 輸出日期和時間
	System.out.println("SHORT格式:" + date+" "+time);
    }
}

四. SimpleDateFormat類

1. 簡介

雖然我們已經(jīng)有了DateFormat,但有時候這個類并不能滿足我們的實際開發(fā)需求。此時我們可以進一步使用它的子類,比如SimpleDateFormat來進行更多的操作。

SimpleDateFormat是一個以與語言環(huán)境有關(guān)的方式來格式化和解析日期的具體類,它具有格式化(日期轉(zhuǎn)文本)、解析(文本轉(zhuǎn)日期)和規(guī)范化的功能。相對DateFormat來說,SimpleDateFormat具有更高的靈活性,可以讓我們選擇任何自定義的日期/時間格式,進行個性化設(shè)置。

2. 構(gòu)造方法

SimpleDateFormat是一個具體的子類,所以我們是可以通過new的方式來創(chuàng)建對象的。SimpleDateFormat類為我們提供了如下4個構(gòu)造方法:

  • SimpleDateFormat():用默認的格式和語言環(huán)境,構(gòu)造一個SimpleDateFormat對象;
  • SimpleDateFormat(String pattern):用指定的格式和默認的語言環(huán)境,構(gòu)造一個SimpleDateF ormat對象;
  • SimpleDateFormat(String pattern,Locale locale):用指定的格式和指定的語言環(huán)境,構(gòu)造一個 SimpleDateFormat對象;
  • SimpleDateFormat(String pattern,DateFormatSymbols formatSymbols):用指定的格式和指定的格式化語法來構(gòu)造一個SimpleDateFormat對象。

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

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

字母含義示例
y年份。一般用 yy 表示兩位年份,yyyy 表示 4 位年份使用 yy 表示的年扮,如 11; 使用 yyyy 表示的年份,如 2011
M月份。一般用 MM 表示月份,如果使用 MMM,則會根據(jù)語言環(huán)境顯示不同語言的月份使用 MM 表示的月份,如 05; 使用 MMM 表示月份,在 Locale.CHINA 語言環(huán)境下,如“十月”;在 Locale.US 語言環(huán)境下,如 Oct
d月份中的天數(shù)。一般用 dd 表示天數(shù)使用 dd 表示的天數(shù),如 10
D年份中的天數(shù)。表示當天是當年的第幾天, 用 D 表示使用 D 表示的年份中的天數(shù),如 295
E星期幾。用 E 表示,會根據(jù)語言環(huán)境的不同, 顯示不同語言的星期幾使用 E 表示星期幾,在 Locale.CHINA 語 言環(huán)境下,如“星期四”;在 Locale.US 語 言環(huán)境下,如 Thu
H一天中的小時數(shù)(0~23)。一般用 HH 表示小時數(shù)使用 HH 表示的小時數(shù),如 18
h一天中的小時數(shù)(1~12)。一般使用 hh 表示小時數(shù)使用 hh 表示的小時數(shù),如 10 (注意 10 有 可能是 10 點,也可能是 22 點)
m分鐘數(shù)。一般使用 mm 表示分鐘數(shù)使用 mm 表示的分鐘數(shù),如 29
s秒數(shù)。一般使用 ss 表示秒數(shù)使用 ss 表示的秒數(shù),如 38
S毫秒數(shù)。一般使用 SSS 表示毫秒數(shù)使用 SSS 表示的毫秒數(shù),如 156

4. 基本使用

接下來我們通過一個案例,來展示SimpleDateFormat的格式化和解析用法。

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * @author
 */
public class Demo09 {
    public static void main(String[] args) {
	//設(shè)置日期時間格式化模式,這個模式是根據(jù)需求自定義展示的,也可以是"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("格式后的結(jié)果:" + date);
	try {
            //解析日期,將一個時間字符串解析為Date類型,這里有可能會產(chǎn)生解析異常
            String time="2022-02-12 17:30:39";
            Date date2 = format.parse(time);
            System.out.println("解析后的結(jié)果:" + date2);
	} catch (ParseException e) {
            e.printStackTrace();
	}
    }
}

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

五. 結(jié)語

至此,就把日期的格式化操作給大家講解完畢了。今天的內(nèi)容其實并不難,大家只需要把一些常用的構(gòu)造方式及方法、常量記一下即可。

以上就是學習Java之如何對時間進行格式化的詳細內(nèi)容,更多關(guān)于Java 時間格式化的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Linux中使用shell腳本管理Java應(yīng)用程序

    Linux中使用shell腳本管理Java應(yīng)用程序

    在日常開發(fā)和運維工作中,管理基于Java的應(yīng)用程序是一項基礎(chǔ)且頻繁的任務(wù),本文將通過一個示例腳本,展示如何利用Shell腳本簡化這一流程,實現(xiàn)Java應(yīng)用的一鍵式啟動、停止與重啟操作,本腳本不僅提升了工作效率,還確保了操作的標準化與可靠性
    2024-06-06
  • Java中FileWriter的用法及wirte()重載方法詳解

    Java中FileWriter的用法及wirte()重載方法詳解

    這篇文章主要介紹了Java中FileWriter的用法及wirte()重載方法詳解,FileWriter是Java編程語言中的一個類,用于將字符寫入文件,它提供了一種簡單而方便的方式來創(chuàng)建、打開和寫入文件,通過使用FileWriter,我們可以將字符數(shù)據(jù)寫入文本文件,需要的朋友可以參考下
    2023-10-10
  • Java8進行多個字段分組統(tǒng)計的實例代碼

    Java8進行多個字段分組統(tǒng)計的實例代碼

    在本篇文章里小編給大家分享的是關(guān)于Java8進行多個字段分組統(tǒng)計的實例代碼,需要的朋友們可以學習下。
    2020-05-05
  • java編程枚舉類型那些事!枚舉類型定義和重寫枚舉的方法

    java編程枚舉類型那些事!枚舉類型定義和重寫枚舉的方法

    本文主要介紹了枚舉類型的有關(guān)內(nèi)容,涉及簡單的枚舉類型定義,以及枚舉類型的值在Java中的定義方法,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • Hibernate核心類和接口的詳細介紹

    Hibernate核心類和接口的詳細介紹

    今天小編就為大家分享一篇關(guān)于Hibernate核心類和接口的詳細介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • idea使用war以及war exploded的區(qū)別說明

    idea使用war以及war exploded的區(qū)別說明

    本文詳細解析了war與warexploded兩種部署方式的差異及步驟,war方式是先打包成war包,再部署到服務(wù)器上;warexploded方式是直接把文件夾、class文件等移到Tomcat上部署,支持熱部署,開發(fā)時常用,文章分別列出了warexploded模式和war包形式的具體操作步驟
    2024-10-10
  • Java Spring使用hutool的HttpRequest發(fā)送請求的幾種方式

    Java Spring使用hutool的HttpRequest發(fā)送請求的幾種方式

    文章介紹了Hutool庫中用于發(fā)送HTTP請求的工具,包括添加依賴、發(fā)送GET和POST請求的方法,以及GET請求的不同參數(shù)傳遞方式,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Spring Bean生命周期源碼原理圖解

    Spring Bean生命周期源碼原理圖解

    這篇文章主要介紹了Spring Bean生命周期源碼原理圖解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • 查看import的類是出自哪個jar包的方法

    查看import的類是出自哪個jar包的方法

    下面小編就為大家?guī)硪黄榭磇mport的類是出自哪個jar包的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • SpringBoot解析yml全流程詳解

    SpringBoot解析yml全流程詳解

    本文主要介紹了SpringBoot解析yml全流程詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論