Java 中的系統時間


currentTimeMillis()
System.currentTimeMillis返回的是從1970.1.1 UTC 零點開始到現在的時間,精確到毫秒,平時我們可以根據System.currentTimeMillis來計算當前日期,星期幾等,可以方便的與Date進行轉換
返回以毫秒為單位的當前時間。注意,當返回值的時間單位是毫秒時,值的粒度取決於底層操作系統,並且粒度可能更大。例如,許多操作系統以幾十毫秒為單位測量時間。
請參閱 Date 類的描述,了解可能發生在“計算機時間”和協調世界時(UTC)之間的細微差異的討論。

 

nanoTime()
System.nanoTime提供相對精確的計時,但是不能用他來計算當前日期
返回最准確的可用系統計時器的當前值,以毫微秒為單位。
此方法只能用於測量已過的時間,與系統或鍾表時間的其他任何時間概念無關。
返回值表示從某一固定但任意的時間算起的毫微秒數(或許從以后算起,所以該值可能為負)。此方法提供毫微秒的精度,但不是必要的毫微秒的准確度。它對於值的更改頻率沒有作出保證。在取值范圍大於約 292 年(263 毫微秒)的連續調用的不同點在於:由於數字溢出,將無法准確計算已過的時間

JDK中有一個final class System

其中提供了一些輸入輸出等方法,並且有毫秒級的系統時間和毫微秒的nanotime

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class SysTime {

    public static void main(String[] args) {

        SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String strsystime = sf.format(System.currentTimeMillis());//系統當前時間
        String strsysnanotime = sf.format(System.nanoTime());//系統當前時間

        System.out.println(strsystime);
        System.out.println(strsysnanotime);

        long systime = System.currentTimeMillis();
        System.out.println(Calendar.getInstance().getTime().getTime());
        System.out.println(systime);
        System.out.println(systime=(systime/1000));
        System.out.println("秒:"+ systime%60);
        System.out.println(systime=(systime/60));
        System.out.println("分鍾:"+systime%60);
        System.out.println(systime=(systime/60));
        System.out.println("小時:"+systime%24);

        long  nano = System.nanoTime();
        System.out.println(nano);
    }
}

  

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class GetTime {

    public static void main(String[] args) {

        Date date = new Date();
        long time =  date.getTime() ;
        System.out.println(time);

        Calendar calendar = Calendar.getInstance();
        System.out.println(Calendar.getInstance().getTime().getTime());
        calendar.add(Calendar.MINUTE, -1);
        System.out.println(calendar.getTime().getTime());

        Calendar calendar1 = Calendar.getInstance();
        System.out.println(calendar1.getTime().getTime());
        calendar1.add(Calendar.SECOND, -90);
        System.out.println(calendar1.getTime().getTime());

        Calendar calendar2 = Calendar.getInstance();
        calendar2.add(Calendar.DATE, 1);
        System.out.println(calendar2.getTime().getTime());
        System.out.println("===============");

        long systime = System.currentTimeMillis();
        System.out.println(Calendar.getInstance().getTime().getTime());
        System.out.println(systime);
        System.out.println(systime=(systime/1000));
        System.out.println("秒:"+ systime%60);
        System.out.println(systime=(systime/60));
        System.out.println("分鍾:"+systime%60);
        System.out.println(systime=(systime/60));
        System.out.println("小時:"+systime%24);

    }
}

  當前Java 中除了System類中獲取系統時間之外,還有Date,Calender等可以獲取系統時間

其中Date是一個普通的類,實現了implements java.io.Serializable, Cloneable, Comparable<Date>
Calendar是一個抽象類, 實現了implements Serializable, Cloneable, Comparable<Calendar>
System是一個最終類


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM