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 }

 

posted @ 2018-09-06 16:20  leeyuki  阅读(337)  评论(0编辑  收藏  举报