DateFormat類html
java.text .DateFormat 是 日期/時間格式化子類的抽象類,咱們經過這個類能夠幫咱們完成日期和文本之間的轉換:也就是能夠在Date對象與String對象之間進行來回轉換。
java
●格式化:按照指定的格式,從Date對象轉換爲String對象。
●解析:按照指定的格式.從String對象轉換爲Date對象。url
包的關係爲:spa
java.lang.Object ->java.text.Format ->java.text.DateFormat ->java.text.SimpleDateFormat.net
由於DateFormat是抽象類,不能直接調用,須要經過調用直接子類來調用方法,直接子類爲:SimpleDateFormatcode
SimpleDateFormat
是一個以與語言環境有關的方式來格式化和解析日期的具體類。它容許進行格式化(日期 -> 文本)、解析(文本 -> 日期)和規範化。orm
日期和時間模式:htm
字母 | 日期或時間元素 | 表示 | 示例 |
---|---|---|---|
G |
Era 標誌符 | Text | AD |
y |
年 | Year | 1996 ; 96 |
M |
年中的月份 | Month | July ; Jul ; 07 |
w |
年中的週數 | Number | 27 |
W |
月份中的週數 | Number | 2 |
D |
年中的天數 | Number | 189 |
d |
月份中的天數 | Number | 10 |
F |
月份中的星期 | Number | 2 |
E |
星期中的天數 | Text | Tuesday ; Tue |
a |
Am/pm 標記 | Text | PM |
H |
一天中的小時數(0-23) | Number | 0 |
k |
一天中的小時數(1-24) | Number | 24 |
K |
am/pm 中的小時數(0-11) | Number | 0 |
h |
am/pm 中的小時數(1-12) | Number | 12 |
m |
小時中的分鐘數 | Number | 30 |
s |
分鐘中的秒數 | Number | 55 |
S |
毫秒數 | Number | 978 |
z |
時區 | General time zone | Pacific Standard Time ; PST ; GMT-08:00 |
Z |
時區 | RFC 822 time zone | -0800 |
示例:對象
日期和時間模式 | 結果 |
---|---|
"yyyy.MM.dd G 'at' HH:mm:ss z" |
2001.07.04 AD at 12:08:56 PDT |
"EEE, MMM d, ''yy" |
Wed, Jul 4, '01 |
"h:mm a" |
12:08 PM |
"hh 'o''clock' a, zzzz" |
12 o'clock PM, Pacific Daylight Time |
"K:mm a, z" |
0:08 PM, PDT |
"yyyyy.MMMMM.dd GGG hh:mm aaa" |
02001.July.04 AD 12:08 PM |
"EEE, d MMM yyyy HH:mm:ss Z" |
Wed, 4 Jul 2001 12:08:56 -0700 |
"yyMMddHHmmssZ" |
010704120856-0700 |
"yyyy-MM-dd'T'HH:mm:ss.SSSZ" |
2001-07-04T12:08:56.235-0700 |
構造方法:blog
因爲DateFormat爲抽象類,不能直接使用.因此須要經常使用的子類java. text. SimpleDateFornat.這個類須要一個模式(格式)來指定格式化或解析的標準。
構造方法摘要 |
---|
SimpleDateFormat() 用默認的模式和默認語言環境的日期格式符號構造 SimpleDateFormat 。 |
SimpleDateFormat(String pattern) 用給定的模式和默認語言環境的日期格式符號構造 SimpleDateFormat 。 |
SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols) 用給定的模式和日期符號構造 SimpleDateFormat 。 |
SimpleDateFormat(String pattern, Locale locale) 用給定的模式和給定語言環境的默認日期格式符號構造 SimpleDateFormat 。 |
SimpleDateFormat,參數pattern是一個字符串 表明日期時間的自定義格式。
格式化:
用SimpleDateFormat 的構造方法中傳遞指定格式化模式,用SimpleDateFormat中的方法format把Date日期格式化爲符號模式的字符串。
示例代碼:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒");
//用構造方法指定模式
String d1 = sdf.format(date);
//調用format方法把Date日期轉化成字符串
System.out.println(date);//傳人Date日期
System.out.println(d1);//輸出
System.out.println("================");
SimpleDateFormat sdf2 = new SimpleDateFormat("MM月dd日yyyy年 HH時mm分ss秒");
String d2 = sdf2.format(date);
System.out.println(date);
System.out.println(d2);
System.out.println("================");
SimpleDateFormat sdf3 = new SimpleDateFormat("HH時mm分ss秒 yyyy年MM月dd日 ");
String d3 = sdf3.format(date);
System.out.println(date);
System.out.println(d3);
輸出結果以下:
解析:
使用pateFormat類中的方法parse,把文本解析爲日期
使用步驟:
1.建立Stmpl eDateFormat對象,構造方法中傳遞指定的模式
2.調用stepleDateFormat對象中的方法parse,把符合構造方法中模式的字符串,解析爲Date日期
注意:
public Date parse(String source) throws ParseException
parse方法聲明瞭一個異常叫ParseException
若是字符串和構造方法的模式不同.那麼程序就會的出此異常
調用一個拋出了異常的方法,就必須的處理這個異常,要麼throws繼續拋出這個異常,要麼try catch本身處理
示例代碼:
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DateParse { public static void main(String[] args) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH時mm分ss秒"); Date date = sdf.parse("2020年01月27日 14時56分09秒"); System.out.println(date); } }
parse()括號裏輸入的日期格式必須與SimpleDateFormat裏指定的日期格式相同,不然報錯。