在Java中String和Date、Timestamp之間的轉(zhuǎn)換
一、String與Date(java.util.Date)互轉(zhuǎn)
1.1 String -> Date
String dateStr = "http:// ::";
Date date = new Date();
//注意format的格式要與日期String的格式相匹配
DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
try {
date = sdf.parse(dateStr);
System.out.println(date.toString());
} catch (Exception e) {
e.printStackTrace();
}
String dateStr = "2010/05/04 12:34:23";
Date date = new Date();
//注意format的格式要與日期String的格式相匹配
DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
try {
date = sdf.parse(dateStr);
System.out.println(date.toString());
} catch (Exception e) {
e.printStackTrace();
}
1.2 Date -> String
日期向字符串轉(zhuǎn)換,可以設(shè)置任意的轉(zhuǎn)換格式format
String dateStr = "";
Date date = new Date();
//format的格式可以任意
DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH/mm/ss");
try {
dateStr = sdf.format(date);
System.out.println(dateStr);
dateStr = sdf.format(date);
System.out.println(dateStr);
} catch (Exception e) {
e.printStackTrace();
}
String dateStr = "";
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");
try {
dateStr = sdf.format(date);
System.out.println(dateStr);
dateStr = sdf2.format(date);
System.out.println(dateStr);
} catch (Exception e) {
e.printStackTrace();
}
二、String與Timestamp互轉(zhuǎn)
2.1 String ->Timestamp
使用Timestamp的valueOf()方法
Timestamp ts = new Timestamp(System.currentTimeMillis());
String tsStr = "-- ::";
try {
ts = Timestamp.valueOf(tsStr);
System.out.println(ts);
} catch (Exception e) {
e.printStackTrace();
}
Timestamp ts = new Timestamp(System.currentTimeMillis());
String tsStr = "2011-05-09 11:49:45";
try {
ts = Timestamp.valueOf(tsStr);
System.out.println(ts);
} catch (Exception e) {
e.printStackTrace();
}
注:String的類型必須形如: yyyy-mm-dd hh:mm:ss[.f...] 這樣的格式,中括號(hào)表示可選,否則報(bào)錯(cuò)?。。?
如果String為其他格式,可考慮重新解析下字符串,再重組~~
2.2 Timestamp -> String
使用Timestamp的toString()方法或者借用DateFormat
Timestamp ts = new Timestamp(System.currentTimeMillis());
String tsStr = "";
DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
try {
//方法一
tsStr = sdf.format(ts);
System.out.println(tsStr);
//方法二
tsStr = ts.toString();
System.out.println(tsStr);
} catch (Exception e) {
e.printStackTrace();
}
Timestamp ts = new Timestamp(System.currentTimeMillis());
String tsStr = "";
DateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
try {
//方法一
tsStr = sdf.format(ts);
System.out.println(tsStr);
//方法二
tsStr = ts.toString();
System.out.println(tsStr);
} catch (Exception e) {
e.printStackTrace();
}
很容易能夠看出來(lái),方法一的優(yōu)勢(shì)在于可以靈活的設(shè)置字符串的形式。
三、Date( java.util.Date )和Timestamp互轉(zhuǎn)
聲明:查API可知,Date和Timesta是父子類關(guān)系
3.1 Timestamp -> Date
Timestamp ts = new Timestamp(System.currentTimeMillis());
Date date = new Date();
try {
date = ts;
System.out.println(date);
} catch (Exception e) {
e.printStackTrace();
}
Timestamp ts = new Timestamp(System.currentTimeMillis());
Date date = new Date();
try {
date = ts;
System.out.println(date);
} catch (Exception e) {
e.printStackTrace();
}
很簡(jiǎn)單,但是此刻date對(duì)象指向的實(shí)體卻是一個(gè)Timestamp,即date擁有Date類的方法,但被覆蓋的方法的執(zhí)行實(shí)體在Timestamp中。
3.2 Date -> Timestamp
父類不能直接向子類轉(zhuǎn)化,可借助中間的String~~~~
java.sql.Date 只存儲(chǔ)日期數(shù)據(jù)不存儲(chǔ)時(shí)間數(shù)據(jù) // 會(huì)丟失時(shí)間數(shù)據(jù) preparedStatement.setDate(1, new java.sql.Date(date.getTime())); //可以這樣來(lái)處理 preparedStatement.setTimestamp(1, new java.sql.Timestamp(new java.util.Date().getTime())); //想要得到完整的數(shù)據(jù),包括日期和時(shí)間,可以這樣 java.util.Date d = resultSet.getTimestamp(1); //這樣處理更合適一些,可以避免一些潛在Timestamp 問(wèn)題 java.util.Date d = new java.util.Date(resultSet.getTimestamp(1).getTime());
自己補(bǔ)的話,這樣的話:
往數(shù)據(jù)庫(kù)存儲(chǔ)的時(shí)候可以接收 java.util.Date類型 再用getTime()方法得到代表那個(gè)Date對(duì)象的long值,再以這個(gè)long值 構(gòu)造一個(gè)Timestamp對(duì)象 存進(jìn)數(shù)據(jù)庫(kù)中。
從存數(shù)據(jù)庫(kù)里取的時(shí)候,可以先得到Timestamp用他的getTime()方法得到long值,再以這個(gè)long值構(gòu)造一個(gè)java.util.Date對(duì)象,這樣就可以對(duì)這個(gè)Date對(duì)象操作了。不如說(shuō) new SimpleTimeFormat("yyyyy-MM-dd HH:mm:ss").format()等等
相關(guān)文章
springboot下mybatis-plus開啟打印sql日志的配置指南
這篇文章主要給大家介紹了關(guān)于springboot下mybatis-plus開啟打印sql日志的配置指南的相關(guān)資料,還介紹了關(guān)閉打印的方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03
java?啟動(dòng)參數(shù)?springboot?idea詳解
這篇文章主要介紹了java?啟動(dòng)參數(shù)?springboot?idea的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
記錄一次connection reset 錯(cuò)誤的解決全過(guò)程
這篇文章主要介紹了記錄一次connection reset 錯(cuò)誤的解決全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
spring boot入門開始你的第一個(gè)應(yīng)用
這篇文章主要介紹了spring boot入門開始你的第一個(gè)應(yīng)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下2019-06-06
Netty網(wǎng)絡(luò)編程實(shí)戰(zhàn)之開發(fā)聊天室功能
這篇文章主要為大家詳細(xì)介紹了如何利用Netty實(shí)現(xiàn)聊天室功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Netty網(wǎng)絡(luò)編程有一定幫助,需要的可以參考一下2022-10-10

