当前位置:网站首页>Extension and application of timestamp

Extension and application of timestamp

2022-07-06 00:22:00 Wang Xiaoya

expand

Some application examples encountered in recent learning can be solved by timestamp , There are three ways to obtain timestamp , Recommended System Class to get the timestamp , Let's take a look at three ways :

1.System.currentTimeMillis()
System Class currentTimeMilis() The method is the most efficient of the three , The shortest running time . In the development, if the design comes to the problem of efficiency , It is recommended to use this method to obtain .

2.new Date().getTime()
except System class , The ones that use a lot should be Date The class , If the date is involved in the development, you will first think of Date, but date Getting a timestamp in a class is not the most efficient , Look at his source code :
The parameterless structure is as follows
public Date() {
this(System.currentTimeMillis());
You can see from the source code , new Date() It's actually called System.currentTimeMillis(), Then pass in your own parameter constructor . It's not hard to see. , If you just get the timestamp , Even anonymous new Date() Objects also have a slight performance cost , From the perspective of improving performance , Just get the timestamp , Regardless of the time zone ( Why does time zone have an impact? Let's see the next paragraph ), Call directly System.currentTimeMillis() It will be better .

3.Calendar.getInstance().getTimelnMillis()
This method is actually the slowest , Look at its source code and you will find ,Canlendar It's time zone sensitive , Because it takes a lot of time to deal with the time zone problem .

in summary , It is recommended to use System.currentTimeMillis() Get the timestamp .

Application example :

Find the number of days between two dates

for example : Write a method (fun3(“2010-09-20”,“2010-09-21”) ) The result is 1 God

package com.com.object_11.pratice_11.A4;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class CalendarDemo {
    
    public static void main(String[] args) {
    
//  Use time stamps 
        DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
        try {
    
            Date star = dft.parse("2022-06-30");// Starting time 
            Date endDay=dft.parse("2025-11-30");// End time 
            Long starTime=star.getTime();
            Long endTime=endDay.getTime();
            Long num=endTime-starTime;// The number of milliseconds between timestamps 
            System.out.println(" The difference in days is :"+num/24/60/60/1000);// Divide by the number of milliseconds in a day 
        } catch (ParseException e) {
    
            e.printStackTrace();
        }
    }

}

 Insert picture description here
How many days were you born
Please use date time related API, Calculate how many days a person has been born .

package com.com.object_11.pratice_11.A5;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

// Please use date time related API, Calculate how many days a person has been born .
public class Birthday {
    
    public static void main(String[] args) {
    
//  Use time stamps 
        DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
        try {
    
            Date star = dft.parse("1999-11-08");// Starting time 
            Date endDay=dft.parse("2022-06-30");// End time 
            Long starTime=star.getTime();
            Long endTime=endDay.getTime();
            Long num=endTime-starTime;// The number of milliseconds between timestamps 
            System.out.println(" The number of days since birth is :"+num/24/60/60/1000);// Divide by the number of milliseconds in a day 
        } catch (ParseException e) {
    
            e.printStackTrace();
        }
    }

}

 Insert picture description here
Print digit 1-9999 The time needed
verification for Cycle numbers 1-9999 The time needed ( millisecond )

package com.com.object_11.pratice_11.A6;

// verification for Cycle numbers 1-9999 The time needed ( millisecond )
public class PrintTimes {
    
    public static void main(String[] args) {
    
//  Starting time 
        long start = System.currentTimeMillis();
        for (int i = 1; i < 10000; i++) {
    
            System.out.println(i);
        }
//  End time 
        long end = System.currentTimeMillis();
// The start time minus the end time is the time required for printing 
        System.out.println(" Print 1-9999 need " + (end - start) + " millisecond ");
    }
}

 Insert picture description here

A few days away
So let's figure out today's distance 2023 year 1 month 1 How many days are there in the day

package com.com.object_11.pratice_11.A7;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class FutureTimes {
    
    public static void main(String[] args) throws ParseException {
    
        DateFormat dft = new SimpleDateFormat("yyyy-MM-dd");
        Date endDay=dft.parse("2023-01-01");// End time 

//  Use time stamps 
        Long starTime=System.currentTimeMillis();// Starting time ( At present )
        Long endTime=endDay.getTime();

        Long num=endTime-starTime;// The number of milliseconds between timestamps 
        System.out.println(" Today's distance 2023 year 1 month 1 Day also :"+num/24/60/60/1000+" God ");// Divide by the number of milliseconds in a day 
}
}
// Today's distance 2023 year 1 month 1 Day also :184 God 

 Insert picture description here

原网站

版权声明
本文为[Wang Xiaoya]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060016518040.html