Java 中 String、Date 和 Timestamp 之間的轉換
在 Java 程序中,我們經常需要處理時間和日期。
在這個過程中,我們需要將 String 與 Date 和 Timestamp 之間進行相互轉換。本文將介紹如何在 Java 中實現這些轉換,並提供相應的代碼示例以便於理解。
一、String 與 Date(java.util.Date)互轉
1.1 String 轉 Date: 使用 SimpleDateFormat 類來實現 String 轉 Date。
注意 format 的格式要與日期 String 的格式相匹配。
以下是一個範例:
@org.junit.Test
public void testStringToDate() throws ParseException {
String dateStr = "2010-05-04 12:34:23";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(dateStr);
System.out.println(date.toString()); // Tue May 04 12:34:23 CST 2010
}
1.2 Date 轉 String: 使用 SimpleDateFormat 類將 Date 轉換為 String。
以下是一個範例:
@org.junit.Test
public void testDateToString() {
Date date = new Date();
DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
DateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH/mm/ss");
String dateStr = sdf.format(date);
System.out.println(dateStr); //2017/01/15 13:52:05
dateStr = sdf2.format(date);
System.out.println(dateStr); // 2017-01-15 13/52/05
}
二、String 與 Timestamp 互轉
2.1 String 轉 Timestamp: 使用 Timestamp 的 valueOf() 方法來實現 String 轉 Timestamp。
注意 String 的格式必須是 yyyy-mm-dd hh:mm:ss[.f…] 這樣的格式,否則會報錯。
以下是一個範例:
@org.junit.Test
public void testStringToTimestamp() {
String tsStr = "2011-05-09 11:49:45";
Timestamp ts = Timestamp.valueOf(tsStr);
System.out.println(ts); // 2011-05-09 11:49:45.0
}
2.2 Timestamp 轉 String: 使用 SimpleDateFormat 類將 Timestamp 轉換為 String。
以下是一個範例:
@org.junit.Test
public void testTimestampToString() {
Timestamp ts = new Timestamp(System.currentTimeMillis());
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String tsStr = sdf.format(ts);
System.out.println(tsStr); // 2017-01-15 21:17:04
}
或者使用 Timestamp 的 toString() 方法:
tsStr = ts.toString();
System.out.println(tsStr); // 2017-01-15 21:17:04.7
}
三、Date(java.util.Date)和 Timestamp 互轉
3.1 Timestamp 轉 Date: 由於 Timestamp 是 java.util.Date 的子類,可以直接將 Timestamp 對象賦值給 Date 對象。
以下是一個範例:
@org.junit.Test
public void testTimestampToDate() {
Timestamp ts = new Timestamp(System.currentTimeMillis());
Date date = ts;
System.out.println(date); // 2017-01-15 21:31:47.801
}
此外,我們還可以通過 getTime() 方法獲取 Timestamp 對象的時間戳,並使用它創建一個新的 Date 對象:
date = new Date(ts.getTime());
System.out.println(date); // Sun Jan 15 21:31:47 CST 2017
}
3.2 Date 轉 Timestamp: 由於父類不能直接向子類轉化,我們可以使用 Date 的 getTime() 方法獲取時間戳,然後使用此時間戳創建一個新的 Timestamp 對象。
以下是一個範例:
@org.junit.Test
public void testDateToTimestamp() {
Date date = new Date();
Timestamp ts = new Timestamp(date.getTime());
System.out.println(ts); // 2017-01-15 21:33:32.203
}
綜上所述,我們已經學會了如何在 Java 中實現 String、Date 和 Timestamp 之間的轉換。
希望本文對您有所幫助。