關於Date,時間戳(long),String類型之間的相互轉換,主要是用到類SimpleDateFormat.
先介紹SimpleDateFormat類的一些常見格式:
1.參數:
code |
describe |
Format |
example |
G |
Era designator | Text | AD |
y |
Year | Year | 1996 ; 96 |
Y |
Week year | Year | 2009 ; 09 |
M |
Month in year | Month | July ; Jul ; 07 |
w |
Week in year | Number | 27 |
W |
Week in month | Number | 2 |
D |
Day in year | Number | 189 |
d |
Day in month | Number | 10 |
F |
Day of week in month | Number | 2 |
E |
Day name in week | Text | Tuesday ; Tue |
u |
Day number of week (1 = Monday, ..., 7 = Sunday) | Number | 1 |
a |
Am/pm marker | Text | PM |
H |
Hour in day (0-23) | Number | 0 |
k |
Hour in day (1-24) | Number | 24 |
K |
Hour in am/pm (0-11) | Number | 0 |
h |
Hour in am/pm (1-12) | Number | 12 |
m |
Minute in hour | Number | 30 |
s |
Second in minute | Number | 55 |
S |
Millisecond | Number | 978 |
z |
Time zone | General time zone | Pacific Standard Time ; PST ; GMT-08:00 |
Z |
Time zone | RFC 822 time zone | -0800 |
X |
Time zone | ISO 8601 time zone | -08 ; -0800 ; -08:00 |
2.函數:
Date parse(String):把時間樣式的字符串按照SimpleDateFormat規定的格式轉化為Date
案例:
/* * 將date類型轉化為某規定格式 * SimpleDateFormat 定義自己想要的格式 * 注意:若要在時間中插入普通字符,加上單引號''即可,eg:下列函數中的'T'和'Z',將會輸出T字符和Z字符 */ private static void Date2Format(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:SSS'Z'"); Date date=new Date(); System.out.println("現在時間:\t"+date); System.out.println("格式化:\t"+sdf.format(date)); }
運行結果:
現在時間: Wed Mar 02 14:42:15 CST 2016
格式化: 2016-03-02T14:42:328Z
String format(Date):將date轉化為string類型
案例:
/* * 將某格式的字符串時間轉化為時間格式 * SimpleDateFormat定義為原時間字符串的格式,eg:sdf的格式定義 */ private static void Format2Date(){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:SSS'Z'"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); String strDate="2016-03-02T14:27:799Z"; try { System.out.println("轉化為date類型:"+sdf.parse(strDate)); System.out.println("再轉化為自定義格式:"+sdf1.format(sdf.parse(strDate))); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
運行結果:
轉化為date類型: Wed Mar 02 14:27:00 CST 2016 再轉化為自定義格式: 2016-03-02
程序代碼:
package Test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * @author * @version 創建時間: * */ /* * SimpleDateFormat 主要是兩個方法: 1.String format (Object obj) 將時間格式的object格式化為自定義格式 * 2.Date parse(String source) 將時間格式的字符串轉化為時間格式 */ public class DateFormat { /* * 將date類型轉化為某規定格式 SimpleDateFormat 定義自己想要的格式 * 注意:若要在時間中插入普通字符,加上單引號''即可,eg:下列函數中的'T'和'Z',將會輸出T字符和Z字符 */ private static void Date2Format() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:SSS'Z'"); Date date = new Date(); System.out.println("現在時間:\t" + date); System.out.println("格式化:\t" + sdf.format(date)); } /* * 將某格式的字符串時間轉化為時間格式 SimpleDateFormat定義為原時間字符串的格式,eg:sdf的格式定義 */ private static void Format2Date() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:SSS'Z'"); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd"); String strDate = "2016-03-02T14:27:799Z"; try { System.out.println("轉化為date類型:\t" + sdf.parse(strDate)); System.out.println("再轉化為自定義格式:\t" + sdf1.format(sdf.parse(strDate))); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /* * 測試主函數 */ public static void main(String[] args) throws ParseException { Date2Format(); Format2Date(); } }