java中的DateTime的具體使用
引入org.joda.time.DateTime
<dependency> ? ?<groupId>joda-time</groupId> ? ?<artifactId>joda-time</artifactId> ? ?<version>2.9.8</version> </dependency>
1.初始化時(shí)間
DateTime time = new DateTime(2018,4,23,23, 7,18,888); // 2018年4月23日23點(diǎn)7分18秒888毫秒 ?
2.按格式輸出時(shí)間(將DateTime格式轉(zhuǎn)換為字符串)
String time = dateTime.toString("yyyy-MM-dd hh:mm:ss.SSSa");
小寫hh是12小時(shí)制,大寫HH是24小時(shí)制
3.將字符串轉(zhuǎn)換為DateTime格式
DateTimeFormatter format = DateTimeFormat .forPattern("yyyy-MM-dd HH:mm:ss"); ?
DateTime dateTime = DateTime.parse("2018-4-23 23:12:16", format);?4.取得當(dāng)前時(shí)間
DateTime time= new DateTime();
5.計(jì)算兩個(gè)日期間隔的天數(shù)
?LocalDate start=new LocalDate(2018,4,23); ? ? ?LocalDate end=new LocalDate(2019, 06, 16); ? ? ?int days = Days.daysBetween(start, end).getDays();?
6.增加日期
? ? ? DateTime dateTime = DateTime.parse("2018-04-23"); ?
? ? ? ? ? ? ? ? dateTime = dateTime1.plusDays(1); ?
? ? ? ? ? ? ? ? dateTime = dateTime1.plusHours(2); ?
? ? ? ? ? ? ? ? dateTime = dateTime1.plusMinutes(3); ?
? ? ? ? ? ? ? ? dateTime = dateTime1.plusMonths(4); ?
? ? ? ? ? ? ? ? dateTime = dateTime1.plusSeconds(5); ?
? ? ? ? ? ? ? ? dateTime = dateTime1.plusWeeks(6); ?
? ? ? ? ? ? ? ? dateTime = dateTime1.plusYears(7); ?7.減少日期
? DateTime dateTime = DateTime.parse("2018-04-23"); ?
? ? ? ? ? ? ? ? dateTime = dateTime1.minusMillis(1); ?
? ? ? ? ? ? ? ? dateTime = dateTime1.minusHours(1); ?
? ? ? ? ? ? ? ? dateTime = dateTime1.minusSeconds(1);8.判斷是否閏月
DateTime time = new DateTime();
org.joda.time.DateTime.Property month = time.monthOfYear();
System.out.println("是否閏月:" + month.isLeap());
9.DateTime與Date轉(zhuǎn)換
DateTime time = new DateTime(new Date()); Date date = time.toDate(); DateTime time2 = new DateTime(System.currentTimeMillis()); time2.getMillis();
10.DateTime與Calendar轉(zhuǎn)換
Calendar calendar = Calendar.getInstance();
補(bǔ)充:
字符串和java.utils.Date相互轉(zhuǎn)換
字符串轉(zhuǎn)化為Date類型
DateFormat format = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss"); ? ?// 這里填寫的是想要進(jìn)行轉(zhuǎn)換的時(shí)間格式
String str = "2016-12-11 17:17:10"; ? ? ? ? // 時(shí)間字符串
java.utils.Date date = null;
try{
date = format.parse(str);
}catch(Exception e){
e.printStackTrace();
}
?Date類型轉(zhuǎn)化為字符串
DateFormat format = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss"); ? ?// 這里填寫的是想要進(jìn)行轉(zhuǎn)換的時(shí)間格式
Date date = new java.utils.Date(); ? ? ?// 獲取當(dāng)前時(shí)間
String str = format.format(date);
// str = "2016-12-11 17:17:10"java.sql.Date向數(shù)據(jù)庫(kù)寫入日期
這里就需要java.sql.Date和java.utils.Date進(jìn)行相互轉(zhuǎn)換了,這個(gè)轉(zhuǎn)換一般比較容易,利用構(gòu)造方法和.getTime() 方法進(jìn)行轉(zhuǎn)化。
java.utils.Date date = new java.utils.Date(); ? // 獲取當(dāng)前時(shí)間 java.sql.Date sql_date = new java.sql.Date(date.getTime()); //轉(zhuǎn)換成java.sql.Date
接著使用PreparedStatement 向數(shù)據(jù)庫(kù)中寫入時(shí)間,即可。
ps.setDate(1, new java.sql.Date(date.getTime())); // 設(shè)置項(xiàng)
java.sql.Timestamp向數(shù)據(jù)庫(kù)中寫入時(shí)間
需要注意的是,上邊一種方法只能將日期寫入到數(shù)據(jù)庫(kù)中,為了能夠?qū)r(shí)間精確到s甚至是ms。我們需要使用java.sql.Timestamp 類型。
java.sql.Timestamp 類型的構(gòu)造函數(shù)也可以使用Long進(jìn)行初始化
Date date = new Date(); Timestamp timeStamp = new Timestamp(date.getTime());
故在生成java.utils.Date時(shí),將時(shí)間精確到s,然后使用預(yù)編譯語(yǔ)句執(zhí)行SQL語(yǔ)句
Date date = new Date();
Timestamp timeStamp = new Timestamp(date.getTime());
sql= "insert into flowmeter2(total,std_flow,temp,press,time) values(?,?,?,?,?)";
try {
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, total);
ps.setString(2, std_flow);
ps.setString(3, temp);
ps.setString(4, press);
ps.setTimestamp(5, timeStamp);
ps.executeUpdate();
System.out.println("添加成功!");
connection.close();
到此這篇關(guān)于java中的DateTime的具體使用的文章就介紹到這了,更多相關(guān)java DateTime使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springcloud整合到項(xiàng)目中無(wú)法啟動(dòng)報(bào)錯(cuò)Failed to start bean&n
這篇文章主要介紹了springcloud整合到項(xiàng)目中無(wú)法啟動(dòng)報(bào)錯(cuò)Failed to start bean 'eurekaAutoServiceRegistration'問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
java的Object里wait()實(shí)現(xiàn)原理講解
這篇文章主要介紹了java的Object里wait()實(shí)現(xiàn)原理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
MyBatis框架搭建時(shí)依賴包引入異常的問(wèn)題解決
在使用IDEA環(huán)境搭建MyBatis框架時(shí),可能會(huì)因?yàn)橐蕾嚢姹具^(guò)低導(dǎo)致兼容性問(wèn)題,本文就來(lái)介紹一下MyBatis框架搭建時(shí)依賴包引入異常的問(wèn)題解決,感興趣的可以來(lái)了解一下2024-10-10
springboot實(shí)現(xiàn)郵箱發(fā)送(激活碼)功能的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用springboot實(shí)現(xiàn)郵箱發(fā)送(激活碼)功能,文中的示例代碼簡(jiǎn)潔易懂,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
Java程序設(shè)計(jì)之12個(gè)經(jīng)典樣例
這篇文章主要給大家分享關(guān)于Java程序設(shè)計(jì)11個(gè)經(jīng)典樣例,主要以舉例的形式詳細(xì)的講解了Java程序設(shè)計(jì)的各種方法,需要的朋友可以參考一下文章具體的內(nèi)容2021-10-10
如何通過(guò)Java實(shí)現(xiàn)PDF轉(zhuǎn)高質(zhì)量圖片
在Java中,將PDF文件轉(zhuǎn)換為高質(zhì)量的圖片可以使用不同的庫(kù),其中最常用的庫(kù)之一是?Apache?PDFBox,下面我們就來(lái)看看這個(gè)庫(kù)的具體使用吧2024-10-10
簡(jiǎn)單了解Mybatis如何實(shí)現(xiàn)SQL防注入
這篇文章主要介紹了簡(jiǎn)單了解Mybatis如何實(shí)現(xiàn)SQL防注入,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01

