java.util.Date和java.sql.Date以及System.currentTimeMillis()涉及到時間的問題
阿新 • • 發佈:2018-07-12
指定格式 註意 設置 date 參數 獲取系統時間 clas 系統時間 測試的
java.util.Date與java.sql.Date的區別
- util.Date
1 java.util.Date nowUtil =new java.util.Date();//new了一個util.Date 2 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMMdd HH:mm:ss");//設置格式 3 String time = sdf.format(nowUtil); 5 System.out.println(nowUtil);//直接輸出Date 6 System.out.println(time);//轉換格式再輸出
輸出顯示
2018七月11 21:38:01
Wed Jul 11 21:38:01 CST 2018
2. sql.Date
1 java.sql.Date nowSql=new java.sql.Date(System.currentTimeMillis());//通過調用System.currentTimeMillis()獲得UNIX時間 2 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMMdd HH:mm:ss"); 3 String time = sdf.format(nowSql); 4 System.out.println(time);5 System.out.println(nowSql);
輸出顯示
2018七月11 21:49:12
2018-07-11
1 java.sql.Date nowSql=new java.sql.Date(0); 2 SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMMdd HH:mm:ss"); 3 String time = sdf.format(nowSql); 4 System.out.println(time); 5 System.out.println(nowSql);
輸出顯示
說明:
通過對比可以看出來,util.Date獲得的時間就是系統時間,sql.Date的時間是UNIX時間戳,所以用java.sql.Date(System.currentTimeMillis())同樣可以獲得當前系統時間。不指定格式直接輸出util.Date的時間信息更加詳細(Wed Jul 11 21:38:01 CST 2018),sql.Date就比較粗只有日期(2018-07-11),但是sql.Date實際上是有存有更詳細的時間信息的,如上測試的結果,將sql.Date得得到的時間進行格式設置後再輸出,也是有具體到小時分鐘的信息。
註意:
java.util.Date()參數可以為空
java.sql.Date()參數不能為空,可以為java.sql.Date(long)/java.sql.Date(int,int,int)。上述例子java.sql.Date(0),取到的是UNIX時間戳1970年1月1日,所以要利用System.currentTimeMills()獲取從UNIX時間戳到系統時間這段時間的毫秒數,作為java.sql.Date()的長整形參數。
所以,如要獲取系統時間可直接用java.util.Date date=new java.util.Date();
java.util.Date和java.sql.Date以及System.currentTimeMillis()涉及到時間的問題