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!

推薦閱讀: