java日期格式化SimpleDateFormat的使用詳解
日期和時(shí)間格式由 日期和時(shí)間模式字符串 指定。在 日期和時(shí)間模式字符串 中,未加引號(hào)的字母 'A' 到 'Z' 和 'a' 到 'z' 被解釋為模式字母,用來(lái)表示日期或時(shí)間字符串元素。文本可以使用單引號(hào) (') 引起來(lái),以免進(jìn)行解釋。所有其他字符均不解釋;只是在格式化時(shí)將它們簡(jiǎn)單復(fù)制到輸出字符串
白話文的講:這些A——Z,a——z這些字母(不被單引號(hào)包圍的)會(huì)被特殊處理替換為對(duì)應(yīng)的日期時(shí)間,其他的字符串還是原樣輸出。
日期和時(shí)間模式(注意大小寫,代表的含義是不同的)
yyyy:年
MM:月
dd:日
hh:1~12小時(shí)制(1-12)
HH:24小時(shí)制(0-23)
mm:分
ss:秒
S:毫秒
E:星期幾
D:一年中的第幾天
F:一月中的第幾個(gè)星期(會(huì)把這個(gè)月總共過(guò)的天數(shù)除以7)
w:一年中的第幾個(gè)星期
W:一月中的第幾星期(會(huì)根據(jù)實(shí)際情況來(lái)算)
a:上下午標(biāo)識(shí)
k:和HH差不多,表示一天24小時(shí)制(1-24)。
K:和hh差不多,表示一天12小時(shí)制(0-11)。
z:表示時(shí)區(qū)
(2017-12-28日,更新)
因?yàn)榭吹搅薐ava 8 里面對(duì)日期的格式化操作的API,回頭又看了看這個(gè)以前的日期格式化。發(fā)現(xiàn),文中的實(shí)例不是很全面。不符合濕胸的性格,特地來(lái)完善一下。
private static void formatDataTest() { /* * 日期轉(zhuǎn)期望格式的字符串 */ //HH 和 hh 的差別:前者是24小時(shí)制,后者是12小時(shí)制。 StringBuilder sb = new StringBuilder(); sb.append("yyyy年MM月dd日 HH:mm:ss") .append(" 上下午標(biāo)志 a") .append(" E") .append(" 一年中的第D天") .append(" 一月中的第F個(gè)星期") .append(" 一年中的第w個(gè)星期") .append(" 一月中的第W個(gè)星期") .append(" Z") .append(" z"); SimpleDateFormat sdf = new SimpleDateFormat(sb.toString()); String dateString = sdf.format(new Date()); System.out.println(dateString); /* * 字符串轉(zhuǎn)日期 */ Date date; try { date = sdf.parse(dateString); System.out.println(date); } catch (ParseException e) { System.out.println(e.getMessage()); } }
運(yùn)行結(jié)果:
2017年12月28日 18:21:731 上下午標(biāo)志 下午 星期四 一年中的第362天 一月中的第4個(gè)星期 一年中的第52個(gè)星期 一月中的第5個(gè)星期 +0800 CST
Thu Dec 28 18:21:00 CST 2017
這里多說(shuō)一句,一個(gè)月中的第幾個(gè)星期, F 這個(gè)出來(lái)的結(jié)果,不靠譜,具體我就在這多做測(cè)試?yán)?,我是測(cè)試過(guò),才這么說(shuō)的,還是后面的那個(gè) W 靠譜。
(更新完成)
具體簡(jiǎn)單常見(jiàn)的實(shí)例:
package com.lxk.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; /** * Created by lxk on 2016/11/4 */ public class Format { public static void main(String[] args) { Date ss = new Date(); System.out.println("一般日期輸出:" + ss); System.out.println("時(shí)間戳:" + ss.getTime()); //Date aw = Calendar.getInstance().getTime();//獲得時(shí)間的另一種方式,測(cè)試效果一樣 SimpleDateFormat format0 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = format0.format(ss.getTime());//這個(gè)就是把時(shí)間戳經(jīng)過(guò)處理得到期望格式的時(shí)間 System.out.println("格式化結(jié)果0:" + time); SimpleDateFormat format1 = new SimpleDateFormat("yyyy年MM月dd日 HH時(shí)mm分ss秒"); time = format1.format(ss.getTime()); System.out.println("格式化結(jié)果1:" + time); } }
測(cè)試結(jié)果圖:
需要什么格式,自己拼好字符串,就可以格式化日期啦。授人以漁呀有木有。
噴子們要是覺(jué)得簡(jiǎn)單呢,就省省唾沫星子吧。我就記個(gè)筆記用。
上面的是:日期轉(zhuǎn)自己想要的字符串格式,下面是字符串轉(zhuǎn)日期類型。
private static void testStringToDate() { String s = "2017-05-25"; SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date = null; try { date = format.parse(s); } catch (ParseException e) { System.out.println(e.getMessage()); } System.out.println(date); }
下面是運(yùn)行的debug截圖。
上面的那個(gè) 日期和時(shí)間模式 是按我們常用的年月日時(shí)分秒來(lái)放的,下面?zhèn)鱾€(gè)別人的專業(yè)的圖,供參考。
定義了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):
以上所述是小編給大家介紹的java SimpleDateFormat使用詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Spring boot 默認(rèn)靜態(tài)資源路徑與手動(dòng)配置訪問(wèn)路徑的方法
這篇文章主要介紹了Spring boot 默認(rèn)靜態(tài)資源路徑與手動(dòng)配置訪問(wèn)路徑的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-05-05Java數(shù)字轉(zhuǎn)中文大寫工具類詳細(xì)代碼(拿去即用)
最近項(xiàng)目中用到金額轉(zhuǎn)大寫的地方,索性給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于Java數(shù)字轉(zhuǎn)中文大寫工具類的相關(guān)資料,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2024-05-05Exception in thread main java.lang.NoClassDefFoundError錯(cuò)誤解決方
這篇文章主要介紹了Exception in thread main java.lang.NoClassDefFoundError錯(cuò)誤解決方法,需要的朋友可以參考下2016-08-08Java后臺(tái)防止客戶端重復(fù)請(qǐng)求、提交表單實(shí)現(xiàn)原理
這篇文章主要介紹了Java后臺(tái)防止客戶端重復(fù)請(qǐng)求、提交表單實(shí)現(xiàn)原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12