Date類 | Calendar類 | 其餘 | |
---|---|---|---|
簡介 | Date類中使用最多的是獲取系統當前的日期和時間。 | 可看做是Date類的一個加強版,Calendar類容許以毫秒爲單位的時間轉換成年、月、日、時、分、秒。能夠把Calendar類看成是萬年曆,默認顯示的是當前時間,固然也能夠查看其餘時間 | |
代碼 | Date date = new Date(); System.out.println(date); |
Calendar cal=Calendar.getInstance(); System.out.println(cal); |
long date=System.currentTimeMillis(); System.out.println(date); |
輸出 | Mon Jul 01 11:33:23 CST 2019 (格林威治時間格式) |
java.util.GregorianCalendar[time=1561953350254,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2019,MONTH=6…… | 1561952378083 (表示當前時間的毫秒值) |
格式轉換 | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String nowDate = sdf.format(date); |
int year=cal.get(Calendar.YEAR);//年 int month=cal.get(Calendar.MONTH)+1;//月 默認是從0開始 即1月獲取到的是0 int day=cal.get(Calendar.DAY_OF_MONTH);//日,即一個月中的第幾天 int hour=cal.get(Calendar.HOUR_OF_DAY);//小時 int minute=cal.get(Calendar.MINUTE);//分 int second=cal.get(Calendar.SECOND);//秒 String dateStr =year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second; |
Date dateStr = new Date(date); |
格式轉化後輸出 | 2019-07-01 11:53:17 | 2019-7-1 11:56:19 | Mon Jul 01 11:45:35 CST 2019 |
方法一:java
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = null ; try { date = sdf.parse("2019-7-1 14:47:25"); } catch (ParseException e) { e.printStackTrace(); } System.out.println(dateStr);
輸出:
Mon Jul 01 14:47:25 CST 2019
方法二:code
Date date = new Date(119,6,1);// 表示2019年7月1日,不是很經常使用 System.out.println(date);
輸出:
Mon Jul 01 00:00:00 CST 2019orm
方法三:get
Calendar cal = Calendar.getInstance(); cal.set(Calendar.HOUR_OF_DAY, 14);//控制時 cal.set(Calendar.MINUTE, 12);//控制分 cal.set(Calendar.SECOND, 13);//控制秒 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateStr = sdf.format(cal.getTime()); System.out.println(dateStr);
輸出:
2019-07-01 14:12:13it
(1)獲取前一天時間io
Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, -1); Date d = cal.getTime(); SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd"); String yesterday = sp.format(d);// 獲取昨天日期 System.out.println(yesterday);
或者table
Date d = new Date(System.currentTimeMillis() - 1000 * 60 * 60 * 24); SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd"); String yesterday = sp.format(d);// 獲取昨天日期 System.out.println(yesterday);
兩個輸出都是:
2019-06-30
(2)獲取前一個星期的時間ast
Calendar cal = Calendar.getInstance(); cal.add(Calendar.WEEK_OF_MONTH, -1); Date d = cal.getTime(); SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd"); String date = sp.format(d);// 獲取昨天日期 System.out.println(date);
輸出:
2019-06-24
(3)獲取下一個月的時間form
Calendar cal = Calendar.getInstance(); cal.add(Calendar.MONTH, 1); Date d = cal.getTime(); SimpleDateFormat sp = new SimpleDateFormat("yyyy-MM-dd"); String date = sp.format(d);// 獲取昨天日期 System.out.println(date);
輸出:
2019-08-01class
long startTime = System.currentTimeMillis(); doSomething(); long endTime=System.currentTimeMillis(); long time= endTime-startTime; System.out.println("程序運行時間:"+time+"ms");
輸出:
程序運行時間:817ms
Date startDate=new Date(119,5,20); Date endDate=new Date(119,6,1); long nd=1000*24*60*60; long diff=endDate.getTime()-startDate.getTime(); long countDays=diff/nd; System.out.println("兩個時間相差:"+countDays+"天");
輸出:
兩個時間相差:11天
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { Date d1 = sdf.parse("2019-5-07");//起始日期 Date d2 = sdf.parse("2019-07-1");//結束日期 Calendar cal =Calendar.getInstance(); cal.setTime(d1); Date tmp=d1; //打印2019年5月7日到2019年7月1日的日期 while(tmp.getTime()<=d2.getTime()) { System.out.println(sdf.format(tmp)); //天數加上1 cal.add(Calendar.DAY_OF_MONTH, 1); tmp=cal.getTime(); } } catch (ParseException e) { e.printStackTrace(); }