别废话,看代码实例!
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 }