1 importjava.util.Calendar;2 importjava.util.Date;3
4 //import java.sql.Date;
5 import java.sql.Timestamp; //extends from java.util.Date,指的是实现继承,而不是类型继承
6
7 importjava.text.SimpleDateFormat;8 importjava.text.ParseException;9 importjava.text.DateFormat;10
11 public classJavaTime{12 public static void main(String[] args) throwsParseException{13
14 /*String*/
15 String dt = newString();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 = newDate();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 201854
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 }