Java:String和Date、Timestamp之間的轉換
阿新 • • 發佈:2018-12-31
一、String與Date(java.util.Date)互轉
// 1.1、String -> Date @org.junit.Test public void testStringToDate() throws ParseException { String dateStr = "2010-05-04 12:34:23"; //注意format的格式要與日期String的格式相匹配 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 @org.junit.Test public void testDateToString() { Date date = new Date(); //format的格式可以任意 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()方法 @org.junit.Test public void testStringToTimestamp() { // 注:String的型別必須形如: yyyy-mm-dd hh:mm:ss[.f...] 這樣的格式,中括號表示可選,否則報錯!!! // 如果String為其他格式,可考慮重新解析下字串,再重組~~ String tsStr = "2011-05-09 11:49:45"; Timestamp ts = Timestamp.valueOf(tsStr); // 2011-05-09 11:49:45.0 System.out.println(ts); } // 2.2 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 //方法二 tsStr = ts.toString(); System.out.println(tsStr); // 2017-01-15 21:17:04.7 }
三、Date( java.util.Date )和Timestamp互轉
宣告:查API可知,Date和Timesta是父子類關係public class Timestamp extends java.util.Date {
// 3.1 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 // 很簡單,但是此刻date物件指向的實體卻是一個Timestamp,即date擁有Date類的方法,但被覆蓋的方法的執行實體在Timestamp中。 date = new Date(ts.getTime()); System.out.println(date); // Sun Jan 15 21:31:47 CST 2017 } // 3.2 Date -> Timestamp // 父類不能直接向子類轉化,可藉助中間的String~~~~ @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 }