java中Date與DateFormat的格式輸出


一、DateFormat    

java.text.DateFormat 

使用 getDateInstance 來獲取該國家/地區的標准日期格式。另外還提供了一些其他靜態工廠方法。使用 getTimeInstance 可獲取該國家/地區的時間格式。使用 getDateTimeInstance 可獲取日期和時間格式。可以將不同選項傳入這些工廠方法,以控制結果的長度(從 SHORT 到 MEDIUM 到 LONG 再到 FULL)。確切的結果取決於語言環境,但是通常:

  • SHORT 完全為數字,如 12.13.52 或 3:30pm
  • MEDIUM 較長,如 Jan 12, 1952
  • LONG 更長,如 January 12, 1952 或 3:30:32pm
  • FULL 是完全指定,如 Tuesday、April 12、1952 AD 或 3:30:42pm PST。

如果願意,還可以在格式上設置時區。如果想對格式化或解析施加更多的控制(或者給予用戶更多的控制),可以嘗試將從工廠方法所獲取的 DateFormat 強制轉換為 SimpleDateFormat。這適用於大多數國家/地區;只是要記住將其放入一個 try 代碼塊中,以防遇到特殊的格式。 

使用當地時區
Date date = new Date();
//日期格式,精確到日 2017-4-16
DateFormat df1 = DateFormat.getDateInstance();
System.out.println(df1.format(date));

//可以精確到秒  2017-4-16 12:43:37
DateFormat df2 = DateFormat.getDateTimeInstance();
System.out.println(df2.format(date));

//只顯示出時時分秒 12:43:37
DateFormat df3 = DateFormat.getTimeInstance();
System.out.println(df3.format(date));

//顯示日期,周,上下午,時間(精確到秒)
//2017年4月16日 星期日 下午12時43分37秒 CST
DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);
System.out.println(df4.format(date));

//顯示日期,上下午,時間(精確到秒) 
//2017年4月16日 下午12時43分37秒
DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
System.out.println(df5.format(date));

//顯示日期,上下午,時間(精確到秒) 
//2017年4月16日 下午12時43分37秒
DateFormat df5_1 = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.CHINA);
System.out.println(df5_1.format(date));
//顯示日期,上下午,時間(精確到分) 17-4-16 下午12:43
DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
System.out.println(df6.format(date));

//顯示日期,時間(精確到秒) 2017-4-16 12:43:37 
DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
System.out.println(df7.format(date));

二、 SimpleDateFormat

java.text.SimpleDateFormat

定義了以下模式字母(所有其他字符 'A' 到 'Z' 和 'a' 到 'z' 都被保留):

字母 日期或時間元素 表示 示例
G Era 標志符 Text AD
y Year 199696
M 年中的月份 Month JulyJul07
w 年中的周數 Number 27
W 月份中的周數 Number 2
D 年中的天數 Number 189
d 月份中的天數 Number 10
F 月份中的星期 Number 2
E 星期中的天數 Text TuesdayTue
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 TimePSTGMT-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

 

 

 

 

 

 

 

 

 

 

代碼結果

Date d = new Date();
/* h 1-12輸出格式: 2017-04-16 01:01:22 */
DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String s = format1.format(d);
System.out.println(s);
/* H 0-23輸出格式:2017-04-16 13:01:22*/
DateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
s = format2.format(d);
System.out.println(s);

/* K 0-11輸出格式:2017-04-16 01:01:22 */
DateFormat format3 = new SimpleDateFormat("yyyy-MM-dd KK:mm:ss");
s = format3.format(d);
System.out.println(s);

/* k 1-24輸出格式: 2017-04-16 13:01:22 */
DateFormat format4 = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
s = format4.format(d);
System.out.println(s);

/* 輸出格式: 20170416010122 */
DateFormat format5 = new SimpleDateFormat("yyyyMMddhhmmss");
s = format5.format(d);
System.out.println(s);

 

常用方法


 

parse

public Date parse(String texts)
解析字符串的文本,生成  Date

此方法試圖解析文本。如果解析成功,並返回解析得到的日期。更新后的 pos 可以用來指示下次調用此方法的起始點。如果發生錯誤,並且返回 null。

 

指定者:
類  DateFormat 中的  parse
參數:
text - 應該解析其中一部分的  String
 
返回:
從字符串進行解析的  Date。如果發生錯誤,則返回 null。
拋出:
NullPointerException - 如果  text 為 null。
另請參見:
DateFormat.setLenient(boolean)

 


 

parse

public Date parse(String text,
                  ParsePosition pos)
解析字符串的文本,生成  Date

此方法試圖解析從 pos 給定的索引處開始的文本。如果解析成功,則將 pos 的索引更新為所用最后一個字符后面的索引(不必對直到字符串結尾的所有字符進行解析),並返回解析得到的日期。更新后的 pos 可以用來指示下次調用此方法的起始點。如果發生錯誤,則不更改 pos 的索引,並將 pos 的錯誤索引設置為發生錯誤處的字符索引,並且返回 null。

 

指定者:
類  DateFormat 中的  parse
參數:
text - 應該解析其中一部分的  String
pos - 具有以上所述的索引和錯誤索引信息的  ParsePosition 對象。
返回:
從字符串進行解析的  Date。如果發生錯誤,則返回 null。
拋出:
NullPointerException - 如果  text 或  pos 為 null。
另請參見:
DateFormat.setLenient(boolean)

 


 

format

public final String format(Date date)
將一個 Date 格式化為日期/時間字符串。

 

參數:
date - 要格式化為時間字符串的時間值。
返回:
已格式化的時間字符串。

 

    天津雍博科技有限責任公司

    歡迎大家訪問www.yongbosoft.com ,崇尚技術,為您提供完美產品,優質服務!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM