別廢話,看代碼實例!java
1 import java.util.Calendar; 2 import java.util.Date; 3 4 //import java.sql.Date; 5 import java.sql.Timestamp; //extends from java.util.Date,指的是實現繼承,而不是類型繼承 6 7 import java.text.SimpleDateFormat; 8 import java.text.ParseException; 9 import java.text.DateFormat; 10 11 public class JavaTime{ 12 public static void main(String[] args) throws ParseException{ 13 14 /*String*/ 15 String dt = new String(); 16 dt="2018-09-06 14:29:12"; 17 System.out.println(dt); 18 19 String dt2 = new String("2018-09-06 14:29:12"); 20 System.out.println(dt2); 21 22 String dt3 = "2018-09-06 14:29:12"; 23 System.out.println(dt3); 24 25 String dt4=String.valueOf(80); 26 System.out.println(dt4); 27 System.out.println(dt4.toString()); 28 29 /*Calendar*/ 30 //Calendar calendar = new Calendar(); Calendar是抽象類,沒法 31 Calendar curTime=Calendar.getInstance();//建立系統當前日期時間的對象,默認是當前日期 32 System.out.println(curTime); 33 /*java.util.GregorianCalendar[ 34 time=1536219794331,areFieldsSet=true,areAllFieldsSet=true,lenient=true, 35 zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0, 36 useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1, 37 YEAR=2018,MONTH=8,WEEK_OF_YEAR=36,WEEK_OF_MONTH=2,DAY_OF_MONTH=6,DAY_OF_YEAR=249,DAY_OF_WEEK=5, 38 DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,MINUTE=43,SECOND=14,MILLISECOND=331, 39 ZONE_OFFSET=28800000,DST_OFFSET=0]*/ 40 int year=curTime.get(Calendar.YEAR); 41 int month=curTime.get(Calendar.MONTH)+1; //Calender的月份是從0開始的,但日期和年份是從1開始的 42 //日期的加減運算就是藉助Calendar類 43 Date dateCal=curTime.getTime();//返回一個表示此 Calendar 時間值(從曆元至如今的毫秒偏移量)的 Date 對象 44 System.out.println(dateCal);//Thu Sep 06 15:57:40 CST 2018 45 curTime.add(Calendar.MONTH,2); 46 System.out.println(curTime.getTime());//Tue Nov 06 16:01:05 CST 2018 加2個月變成11月份 47 48 System.out.println(); 49 /*Date*/ 50 Date date = new Date(); 51 System.out.println(date); //等同System.out.println(date.toString()),建議用toString()方法,易於理解,Date格式:Thu Sep 06 15:35:43 CST 2018 52 System.out.println(date.getTime()); //返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 對象表示的毫秒數(Long類型)。 53 System.out.println(date.toString()); //時間是固定的字符串形式 Thu Sep 06 15:35:43 CST 2018 54 55 //快速提取熟悉的時間格式 56 System.out.println(DateFormat.getDateInstance().format(date)); //2018-9-6 57 System.out.println(DateFormat.getDateInstance(DateFormat.FULL).format(date)); //2018年9月6日 星期四 58 59 60 System.out.println(); 61 62 /*SimpleDateFormat*/ 63 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //解析字符串,格式須要與解析的 時間字符串 保持一致 64 Date dtDate=format.parse(dt); //parse是將 時間字符串(String) 轉爲 Date類的引用類型(Date) 65 System.out.println(dtDate.toString());//Thu Sep 06 14:29:12 CST 2018 66 67 String dtString=format.format(dtDate);//format是將 Date類的類型(DAte) 轉爲 時間字符串 (String) 68 System.out.println(dtString);//2018-09-06 14:29:12 69 70 Timestamp dateTimestamp=new Timestamp(dtDate.getTime());//Timestamp(long time) 使用毫秒時間值構造 Timestamp 對象。 71 System.out.println(dateTimestamp); //2018-09-06 14:29:12.0 72 73 Timestamp dateTimestamp2=Timestamp.valueOf(dtString); 74 System.out.println(dateTimestamp2); 75 System.out.println(dateTimestamp2.getTime());//返回此 Timestamp 對象表示的自 1970 年 1 月 1 日 00:00:00 GMT 以來的毫秒數。 76 77 } 78 79 }