1. 程式人生 > 其它 >java基礎 日期Date

java基礎 日期Date

學習資源:https://how2j.cn/k/date/date-date/346.html#nowhere

java基礎 日期Date
Date類
注意:是java.util.Date;
而非 java.sql.Date,此類是給資料庫訪問的時候使用的

1.時間原點概念
所有的資料型別,無論是整數,布林,浮點數還是字串,最後都需要以數字的形式表現出來。

日期型別也不例外,換句話說,一個日期,比如2020年10月1日,在計算機裡,會用一個數字來代替。

那麼最特殊的一個數字,就是零. 零這個數字,就代表Java中的時間原點,其對應的日期是1970年1月1日 8點0分0秒 。 (為什麼是8點,因為中國的太平洋時區是UTC-8,剛好和格林威治時間差8個小時)

為什麼對應1970年呢? 因為1969年釋出了第一個 UNIX 版本:AT&T,綜合考慮,當時就把1970年當做了時間原點。

所有的日期,都是以為這個0點為基準,每過一毫秒,就+1。

2.建立日期物件

package pack6;

import java.util.Date;

public class DateTest {

    public static void main(String args[]){
        Date d1 = new Date();
        System.out.println("當前時間:");
        System.
out.println(d1); // 從1970年1月1日 早上8點0分0秒 開始經歷的毫秒數 Date d2 = new Date(60000);//1000ms=1s System.out.println("從1970年1月1日 早上8點0分0秒 開始經歷了60秒的時間"); System.out.println(d2); } }

執行結果
在這裡插入圖片描述
3.getTime
getTime() 得到一個long型的整數
這個整數代表 從1970.1.1 08:00:00:000 開始 每經歷一毫秒,增加1

package pack6;

import java.
util.Date; public class DateTest { public static void main(String args[]){ Date now= new Date(); //列印當前時間 System.out.println("當前時間:"+now.toString()); //getTime() 得到一個long型的整數 //這個整數代表 1970.1.1 08:00:00:000,每經歷一毫秒,增加1 System.out.println("當前時間getTime()返回的值是:"+now.getTime()); } }

4.System.currentTimeMillis()
當前日期的毫秒數
new Date().getTime() 和 System.currentTimeMillis() 是一樣的

5.練習
在這裡插入圖片描述

package pack6;

import java.util.Calendar;
import java.util.Date;
import java.util.Random;

public class DateTest {

    public static void main(String args[]){
        Calendar calendar = Calendar.getInstance();
        calendar.clear();
        calendar.set(1995,1,1,00,00,00);//791568000000
        //        calendar.set(1995,12,31,23,59,59);//823103999000
        long millis = calendar.getTimeInMillis();
        System.out.println(millis);

        //隨機生成一個823103999000-791568000000的整數 用這個差值+791568000000
        Random random = new Random();
        long n1=823103999000L;
        long n2=791568000000L;

        long n3=(long)(Math.random()*(n1-n2));

        Date random_time=new Date(n3+millis);
        //隨機的日期
        System.out.println(random_time.toString());
        }
 }