在java中有六大時間類,分別是:
1、java.util包下的Date類,
2、java.sql包下的Date類,
3、java.text包下的DateFormat類,(抽象類)
4、java.text包下的SimpleDateFormat類,
5、java.util包下的Calendar類,(抽象類)
6、java.sql包下的Time類,
7、java.sql包下的TimeStamp類。
?
一、java.util包下的Date類:
Date主要用來生成時間,Date有兩個構造方法:Date()和Date(long date)
?
?
?
二、java.text包下的DateFormat類,(抽象類):
DateFormat繼承自Format。
下面兩個是實現的接口,兩個接口無任何內容:
DateFormat是時間/日期格式化子類的抽象類,所以不能有構造方法實例化,可以用兩個靜態函數進行實例化。
getDateInstance()------返回的是日期
getDateTimeInstance()--------------------返回的是時間+日期。
?
?
?
三、java.text包下的SimpleDateFormat類:
SimpleDateFormat繼承自DateFormat類,
主要功能是:完成日期之間的格式轉換。
yyyy:MM:dd,HH:mm:ss:SSS(SSS是毫秒數)
?
?
?
四、java.util包下的Calendar類,(抽象類):
此類實例化有兩種方式:
1、Calendar time=new GregorianCalendar();
2、Calendar time?=Calendar.getInstance();
此類和日歷相關:“YEAR”年,“MONTH”月,“DAY_OF_MONTH”日,"DAY_OF_WEEK"星期,"HOUR"小時。如:
?
?
?
五、java.sql包下的Date類:
只針對SQL語句使用,Date date=new Date();(也就=2017-01-01,沒有時間部分)
?
六、java.sql包下的Time類,
七、java.sql包下的TimeStamp類。
?
?
?
輸出結果:
?
?
?
?
輸出結果:
?
?
?
?
?
結果:
?
?
?
?
?
結果:
?
?
?
?
?
?
?
?
結果:
?
1 package test; 2 3 import java.text.DateFormat; 4 import java.text.ParseException; 5 import java.text.SimpleDateFormat; 6 import java.util.Calendar; 7 import java.util.Date; 8 import java.util.GregorianCalendar; 9 10 public class time { 11 public static void main(String[] args) throws ParseException { 12 // 將當前日期對象轉換成毫秒值 13 Date date1 = new Date(); 14 Long time1 = date1.getTime(); 15 Long time2 = System.currentTimeMillis();// 獲取當前時間的毫秒值 16 Calendar cal=Calendar.getInstance(); 17 Long caltime=cal.getTimeInMillis(); 18 System.out.println("當前日期對象轉換成毫秒值:" + time2+" Calendar類日期轉換成毫秒值:"+caltime); 19 20 // 將毫秒值轉換成日期對象 21 Date date2 = new Date(); 22 Long time3 = System.currentTimeMillis(); 23 date2.setTime(time3); 24 25 // 將日期字符串轉換成日期對象 26 DateFormat df1 = new SimpleDateFormat("yyyy/MM/dd"); 27 Date date3 = df1.parse("2017/01/12"); 28 System.out.println("日期字符串轉換成日期對象:" + date3); 29 30 SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 31 Date date = df.parse("2009-06-12 02:06:37"); 32 System.out.println("日期字符串轉換成日期格式:" + df.format(date)); 33 34 // 將日期對象轉換成日期字符串 35 Date datetime = new Date(); 36 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); 37 String stringtime = sdf.format(datetime); 38 System.out.println("日期對象轉換成日期字符串:" + stringtime); 39 40 Date date4 = new Date(); 41 DateFormat df41 = DateFormat.getDateInstance(DateFormat.LONG); 42 DateFormat df42 = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG); 43 String time4 = df41.format(date4); 44 String time5 = df42.format(date4); 45 System.out.println("getDateInstance時間:" + time4 + " getDateTimeInstance時間:" + time5); 46 47 Date d = new Date(); 48 DateFormat df43 = DateFormat.getDateInstance(DateFormat.FULL); 49 DateFormat df44 = DateFormat.getDateInstance(DateFormat.SHORT); 50 DateFormat df45 = DateFormat.getDateInstance(DateFormat.MEDIUM); 51 String time43 = df43.format(d); 52 String time44 = df44.format(d); 53 String time45 = df45.format(d); 54 System.out.println("FULL類型時間:" + time43); 55 System.out.println("SHORT類型時間:" + time44); 56 System.out.println("MEDIUM類型時間:" + time45); 57 58 // 日歷 59 Calendar time = Calendar.getInstance(); 60 int year = time.get(Calendar.YEAR); 61 int month = time.get(Calendar.MONTH); 62 int day = time.get(Calendar.DAY_OF_MONTH); 63 int week = time.get(Calendar.DAY_OF_WEEK); 64 int hour = time.get(Calendar.HOUR); 65 System.out.println("當前時間是:" + year + "年" + month + "月" + day + "日,星期" + week + "," + hour + "點"); 66 } 67 }
1 當前日期對象轉換成毫秒值:1504089815431 Calendar類日期轉換成毫秒值:1504089815441 2 日期字符串轉換成日期對象:Thu Jan 12 00:00:00 CST 2017 3 日期字符串轉換成日期格式:2009-06-12 02:06:37 4 日期對象轉換成日期字符串:2017/08/30 5 getDateInstance時間:2017年8月30日 getDateTimeInstance時間:2017年8月30日 下午06時43分35秒 6 FULL類型時間:2017年8月30日 星期三 7 SHORT類型時間:17-8-30 8 MEDIUM類型時間:2017-8-30 9 當前時間是:2017年7月30日,星期4,6點
?