黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 使用SimpleDateFormat類進行Java日期格式化

使用SimpleDateFormat類進行Java日期格式化

更新時間:2022-04-22 10:46:02 來源:動力節點 瀏覽4472次

Java日期類型是大家要了解的,該類java.text.SimpleDateFormat用于根據您自己指定的格式模式解析和格式化日期。解析日期時,JavaSimpleDateFormat通常從Java String解析日期。格式化日期時,SimpleDateFormat通常將Date對象格式化為字符串,盡管它也可以將日期格式化為StringBuffer.

本文解釋了如何使用SimpleDateFormat類來格式化日期。

創建一個 SimpleDateFormat

你創建一個SimpleDateFormat這樣的實例:

字符串模式 = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);

pattern傳遞給構造函數 的參數SimpleDateFormat 是用于解析和格式化日期的模式。模式語法將在本文后面介紹。該模式只是一個普通的 Java String。

格式化日期

創建SimpleDateFormat實例后,您可以使用其format()方法格式化日期。這是一個例子:

字符串模式 = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
字符串日期 = simpleDateFormat.format(new Date());
System.out.println(日期);

Date傳遞給format()方法的實例是一個 實例java.util.Date 。

上述SimpleDateFormat示例打印的輸出將是:

2018-09-09

請注意格式化的日期字符串是如何以年、月、日開頭的。日期字段的順序由傳遞給SimpleDateFormat構造函數的日期模式確定。

將日期格式化為 StringBuffer

JavaSimpleDateFormat類還能夠將Date對象格式化為StringBuffer,而不是返回帶有日期格式的單個字符串。該類 SimpleDateFormat通過一個將,和一個實例作為參數 的format()方法版本來實現這一點。DateStringBufferFieldPosition

這是使用 Java 將日期格式化為 StringBuffer 的示例SimpleDateFormat:

StringBuffer stringBuffer = new StringBuffer();
現在日期 = 新日期();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
simpleDateFormat.format(now, stringBuffer, new FieldPosition(0));

目前尚不清楚如何FieldPosition使用該實例。無論 傳遞給構造函數的值是 什么,該方法似乎都會format() 將格式化的字符串附加到末尾。StringBufferintFieldPosition

解析日期

java.util.Date您可以使用實例的parse() 方法 將字符串解析為SimpleDateFormat實例。這是一個例子:

字符串模式 = "yyyy-MM-dd";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
日期日期 = simpleDateFormat.parse("2018-09-09");

執行此代碼后,date變量將指向Date 表示 2018 年 9 月 9 日的實例。

為特定語言環境創建 SimpleDateFormat

您可以創建一個SimpleDateFormat針對特定 JavaLocale的實例。這樣做將根據Locale相關的日期格式化日期。例如,包含工作日名稱的格式化模式將以給定的語言編寫工作日Locale。這是一個例子:

字符串模式 = "EEEEE dd MMMMM yyyy HH:mm:ss.SSSZ";
簡單日期格式 簡單日期格式 =
        新的 SimpleDateFormat(模式,新的區域設置(“da”,“DK”));
字符串日期 = simpleDateFormat.format(new Date());
System.out.println(日期);

此代碼打印的輸出可能是:

s?ndag 2018 年 9 月 9 日 09:53:17.013+0200

請注意工作日 (søndag = sunday) 和月份 (september) 是如何用丹麥語書寫的。

日期格式符號

可以自定義格式化輸出中使用的日期符號,用于特定的Locale. 您可以使用java.text.DateFormatSymbols實例來執行此操作。這是一個例子:

區域設置 locale = new Locale("en", "UK");
DateFormatSymbols dateFormatSymbols = new DateFormatSymbols(locale);
dateFormatSymbols.setWeekdays(新字符串[]{
        “沒用過”,
        “悲傷的星期天”,
        “狂躁星期一”,
        “繁榮的星期二”,
        “潮濕的星期三”,
        “總星期四”,
        “肥胖星期五”,
        “超級星期六”,
});
字符串模式=“EEEEE MMMMM yyyy”;
簡單日期格式 簡單日期格式 =
        新的 SimpleDateFormat(模式,dateFormatSymbols);
字符串日期 = simpleDateFormat.format(new Date());
System.out.println(日期);

首先為 UK 創建一個新DateFormatSymbols實例Locale。

其次,設置了一組新的工作日名稱。請注意,第一個字符串"unused" 從未使用過。此數組中的索引必須從 1 開始,才能被Calendar.SUNDAY等 Calendar.MONDAY常量索引。Calendar.SUNDAY常數是 1,Calendar.MONDAY 是 2 等等 。

第三個 aSimpleDateFormat是使用創建的DateFormatSymbols,并且使用它格式化日期。由此打印的輸出可能如下所示:

超級星期六 2012 年 11 月

請注意如何使用自定義工作日名稱。

DateFormatSymbols您可以在實例 上設置更多日期格式符號。以下是可用于設置其他符號的方法:

dateFormatSymbols.setWeekdays();
dateFormatSymbols.setAmPmStrings();
dateFormatSymbols.setEras();
dateFormatSymbols.setLocalPatternChars();
dateFormatSymbols.setMonths();
dateFormatSymbols.setShortMonths();
dateFormatSymbols.setShortWeekdays();
dateFormatSymbols.setZoneStrings();

java.text.DateFormatSymbols有關這些方法和符號的更多詳細信息, 請參閱該類的 JavaDoc 。

設置 SimpleDateFormat 的時區

到目前為止,本教程中顯示的示例均使用系統默認時區。這意味著,如果您正在格式化日期,SimpleDateFormat則會假定您要根據系統的時區格式化該日期。但是,這可能并不總是您想要的。

SimpleDateFormat您可以使用其setTimeZone()方法 設置 a 的時區。該setTimeZone()方法將Java TimeZone 實例 ( java.util.TimeZone) 作為參數。下面是一個示例,展示了如何設置 JavaSimpleDateFormat實例的時區:

SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
simpleDateFormat1.setTimeZone(TimeZone.getTimeZone("歐洲/巴黎"));

設置時區后,SimpleDateFormat將更改其格式。這是一個將時區設置為兩個不同時區的示例,并為每個時區設置相同的日期:

現在日期 = 新日期();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("Europe/London"));
System.out.println(simpleDateFormat.format(now));
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("Europe/Paris"));
System.out.println(simpleDateFormat.format(now));

此示例打印的輸出類似于:

2018-09-09 10:43:54+0100
2018-09-09 11:43:54+0200

注意格式化日期的+0100和+0200部分。這些指示時間格式化為哪個時區。順便說一句,倫敦比 UTC / GMT 早 1 小時,而巴黎比 2 小時早,是因為夏令時。在冬季期間,時區偏移量將是+0000和 +0100。

ISO 日期格式

有時您可能希望Date根據ISO 日期格式格式化a 。更具體地說, ISO 8601 日期格式。ISO 8601 日期格式(以下簡稱 ISO 日期格式)如下所示:

yyyy-MM-ddTHH:mm:ss:sssZ

ISO 8601 日期格式的優勢在于,如果您對使用 ISO 8601 格式格式化的日期字符串進行排序,則字符串實際上將按日期順序進行排序。換句話說,字母順序與日期時間順序相同。

上述格式中唯一的新字符是T日期和時間之間的,以及 Z表示時區的模式末尾的 。兩者將在下面解釋。請注意,ISO 8601 日期格式似乎不包括其日期格式中的毫秒。

這T實際上是一個文字字符,必須位于 ISO 8601 日期字符串的日期和時間部分之間。例如:

2018-09-24T17:48:00

代表時區的Z字符可以是:

一個字面Z字符。在這種情況下,Z代表 UTC 時區。

使用以下模式之一編碼的時區字符串:

±hh:mm

±hhmm

±hh

在這些 ISO 時區格式中,JavaSimpleDateFormat類僅支持第二種格式 ( ),即以字符 +hhmm結尾的格式。Z

為了使用以 UTC 時區字符SimpleDateFormat結尾的 ISO 8601 格式創建 Java 實例 Z,您需要使用以下日期模式字符串:

yyyy-MM-dd'T'HH:mm:ss'Z'

請注意T和Z字符是如何用單引號字符括起來的。這是為了讓SimpleDateFormat類將它們視為要插入的文字字符,而不是試圖將它們解釋為代表日期的某些部分。如果不將 Tand字符括在單引號中,創建實例Z時會出現異常 。 以下是使用上述 ISO 8601 日期格式模式 SimpleDateFormat創建 Java 的示例:SimpleDateFormat

String isoDatePattern = "yyyy-MM-dd'T'HH:mm:ss'Z'";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(isoDatePattern);
String dateString = simpleDateFormat.format(new Date());

以下是SimpleDateFormat使用上述模式格式化的日期示例:

2018-09-24T18:01:24Z

為了根據 ISO 8601 日期格式格式化日期,其時區與 UTC 不同,請在創建 JavaSimpleDateFormat實例時使用以下日期模式:

yyyy-MM-dd'T'HH:mm:ssZ

請注意,該Z字符不再用單引號括起來。SimpleDateFormat以下是使用上述日期格式 創建 Java 的示例:

String isoDatePattern = "yyyy-MM-dd'T'HH:mm:ssZ";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(isoDatePattern);
String dateString = simpleDateFormat.format(new Date());

從上面的代碼示例生成的日期字符串將類似于以下內容:

2018-09-24T18:09:24+0200

通過上述介紹,相信大家對使用SimpleDateFormat類進行Java日期格式化已經有所了解,大家如果想了解更多相關知識,不妨來關注一下動力節點的Java在線學習,里面的課程從入門到精通,通俗易懂,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助哦。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 成人免费福利片在线观看 | 国产免费一区2区3区4区 | 国产亚洲欧洲日韩综合v | 中文字幕日韩精品在线 | 第一页在线视频 | 黄色一极毛片 | 欧美日韩在线国产 | 一级做a爰片毛片 | aaaa黄色片 | 狠狠干五月天 | 欧美一区=区三区 | 欧美一二三区 | 91视频免费入口 | 欧美精品成人a多人在线观看 | 九九亚洲综合精品自拍 | 在线免费观看亚洲视频 | 国产成在线观看免费视频成本人 | 五月婷婷丁香在线视频 | 国内精品免费麻豆网站91麻豆 | 毛片在线免费观看网站 | 欧美人在线一区二区三区 | 制服丝袜 自拍偷拍 | 97色在线观看免费视频 | 综合亚洲色图 | 六度国产福利午夜视频黄瓜视频 | 日日操夜夜爱 | 天堂资源在线播放 | 日韩欧美中文字幕在线观看 | 天天搞夜夜 | 日韩伦理片在线 | 亚洲午夜免费视频 | 日本精品一区二区三区在线视频 | 亚洲人成网站在线观看播放青青 | 欧美a网| 99热手机在线观看 | 大色综合色综合网站 | 日韩有码视频在线 | 天海翼一区二区三区四区 | 国产系列欧美系列日韩系列在线 | 国产成人精品一区二三区 | 荡女淫春未删减在线观看 |