java日期時間--時間的獲取、格式的轉換與時間的計算

1、當前時間的獲取與格式的轉換

  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

2、獲取特定時間

1. 獲取指定時間

方法一: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

2.時間變化

(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

3、時間的計算

1.計算執行代碼的時間差

long startTime = System.currentTimeMillis();
    doSomething();
    long endTime=System.currentTimeMillis();
    long time= endTime-startTime;
    System.out.println("程序運行時間:"+time+"ms");

輸出:
 程序運行時間:817ms

2.計算兩個時間的天數

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天

3.時間的遍歷

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();
    }
相關文章
相關標籤/搜索