java中Date与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 | 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 |
?
代碼結果
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)此方法試圖解析文本。如果解析成功,并返回解析得到的日期。更新后的 pos 可以用來指示下次調用此方法的起始點。如果發生錯誤,并且返回 null。
?
?
parse
public Date parse(String?text,ParsePosition?pos)此方法試圖解析從 pos 給定的索引處開始的文本。如果解析成功,則將 pos 的索引更新為所用最后一個字符后面的索引(不必對直到字符串結尾的所有字符進行解析),并返回解析得到的日期。更新后的 pos 可以用來指示下次調用此方法的起始點。如果發生錯誤,則不更改 pos 的索引,并將 pos 的錯誤索引設置為發生錯誤處的字符索引,并且返回 null。
?
?
format
public final String format(Date?date)?
?
總結
以上是生活随笔為你收集整理的java中Date与DateFormat的格式输出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: FastComet vs Bluehos
- 下一篇: 世界最强笔记本电脑?