java中的DateTime的具體使用
引入org.joda.time.DateTime
<dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.9.8</version> </dependency>
1.初始化時間
DateTime time = new DateTime(2018,4,23,23, 7,18,888); // 2018年4月23日23點7分18秒888毫秒
2.按格式輸出時間(將DateTime格式轉換為字符串)
String time = dateTime.toString("yyyy-MM-dd hh:mm:ss.SSSa");
小寫hh是12小時制,大寫HH是24小時制
3.將字符串轉換為DateTime格式
DateTimeFormatter format = DateTimeFormat .forPattern("yyyy-MM-dd HH:mm:ss"); DateTime dateTime = DateTime.parse("2018-4-23 23:12:16", format);
4.取得當前時間
DateTime time= new DateTime();
5.計算兩個日期間隔的天數
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轉換
DateTime time = new DateTime(new Date()); Date date = time.toDate(); DateTime time2 = new DateTime(System.currentTimeMillis()); time2.getMillis();
10.DateTime與Calendar轉換
Calendar calendar = Calendar.getInstance();
補充:
字符串和java.utils.Date相互轉換
字符串轉化為Date類型
DateFormat format = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss"); // 這裡填寫的是想要進行轉換的時間格式 String str = "2016-12-11 17:17:10"; // 時間字符串 java.utils.Date date = null; try{ date = format.parse(str); }catch(Exception e){ e.printStackTrace(); }
Date類型轉化為字符串
DateFormat format = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss"); // 這裡填寫的是想要進行轉換的時間格式 Date date = new java.utils.Date(); // 獲取當前時間 String str = format.format(date); // str = "2016-12-11 17:17:10"
java.sql.Date向數據庫寫入日期
這裡就需要java.sql.Date和java.utils.Date進行相互轉換瞭,這個轉換一般比較容易,利用構造方法和.getTime() 方法進行轉化。
java.utils.Date date = new java.utils.Date(); // 獲取當前時間 java.sql.Date sql_date = new java.sql.Date(date.getTime()); //轉換成java.sql.Date
接著使用PreparedStatement 向數據庫中寫入時間,即可。
ps.setDate(1, new java.sql.Date(date.getTime())); // 設置項
java.sql.Timestamp向數據庫中寫入時間
需要註意的是,上邊一種方法隻能將日期寫入到數據庫中,為瞭能夠將時間精確到s甚至是ms。我們需要使用java.sql.Timestamp 類型。
java.sql.Timestamp 類型的構造函數也可以使用Long進行初始化
Date date = new Date(); Timestamp timeStamp = new Timestamp(date.getTime());
故在生成java.utils.Date時,將時間精確到s,然後使用預編譯語句執行SQL語句
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();
到此這篇關於java中的DateTime的具體使用的文章就介紹到這瞭,更多相關java DateTime使用內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Java技能點之SimpleDateFormat進行日期格式化問題
- 詳解Java關於JDK中時間日期的API
- Java時間處理第三方包Joda Time使用詳解
- Java日期時間類(Date、DateFormat、Calendar)解析
- Java常用類之日期相關類使用詳解