coding script

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 之間的轉換。

希望本文對您有所幫助。

Similar Posts

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *