欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java?Date類的使用方式(日期處理)

 更新時間:2024年11月28日 09:09:17   作者:程序媛_小白  
本文介紹了Java中的Date類和Calendar類的使用,詳細講解了Date類的構造方法和常用方法,并通過一個實例演示了如何使用Date類來比較兩個時間點之間的關系

Java Date類的使用

在Java中獲取當前時間,可以使用 java.util.Date 類和 java.util.Calendar 類完成。

其中,Date 類主要封裝了系統(tǒng)的日期和時間的信息,Calendar 類則會根據(jù)系統(tǒng)的日歷來解釋 Date 對象。

下面詳細介紹Date類的具體使用。

Date 類

Date 類表示系統(tǒng)特定的時間戳,可以精確到毫秒。

Date 對象表示時間的默認順序是星期、月、日、小時、分、秒、年。

1. 構造方法

Date 類有如下兩個構造方法。

  • Date():此種形式表示分配 Date 對象并初始化此對象,以表示分配它的時間(精確到毫秒),使用該構造方法創(chuàng)建的對象可以獲取本地的當前時間。
  • Date(long date):此種形式表示從 GMT 時間(格林尼治時間)1970 年 1 月 1 日 0 時 0 分 0 秒開始經(jīng)過參數(shù) date 指定的毫秒數(shù)。

這兩個構造方法的使用示例如下:

Date date1 = new Date();    // 調(diào)用無參數(shù)構造函數(shù)
System.out.println(date1.toString());    // 輸出:Wed May 18 21:24:40 CST 2016
Date date2 = new Date(60000);    // 調(diào)用含有一個long類型參數(shù)的構造函數(shù)
System.out.println(date2);    // 輸出:Thu Jan 0108:01:00 CST 1970

Date 類的無參數(shù)構造方法獲取的是系統(tǒng)當前的時間,顯示的順序為星期、月、日、小時、分、秒、年。

Date 類帶 long 類型參數(shù)的構造方法獲取的是距離 GMT 指定毫秒數(shù)的時間,60000 毫秒是一分鐘,而 GMT(格林尼治標準時間)與 CST(中央標準時間)相差 8 小時,也就是說 1970 年 1 月 1 日 00:00:00 GMT 與 1970 年 1 月 1 日 08:00:00 CST 表示的是同一時間。

因此距離 1970 年 1 月 1 日 00:00:00 CST 一分鐘的時間為 1970 年 1 月 1 日 00:01:00 CST,即使用 Date 對象表示為 Thu Jan 01 08:01:00 CST 1970。

2. 常用方法

Date 類提供了許多與日期和事件相關的方法,其中常見的方法如下表所示。

方法描述
boolean after(Date when)判斷此日期是否在指定日期之后
boolean before(Date when)判斷此日期是否在指定日期之前
int compareTo(Date anotherDate)比較兩個日期的順序
boolean equals(Object obj)比較兩個日期的相等性
long getTime()返回自 1970 年 1 月 1 日 00:00:00 GMT 以來,此 Date 對象表示的毫秒數(shù)
String toString()把此 Date 對象轉(zhuǎn)換為以下形式的 String: dow mon dd hh:mm:ss zzz yyyy。
其中 dow 是一周中的某一天(Sun、Mon、Tue、Wed、Thu、Fri 及 Sat)

例 1:

  • 下面使用一個實例來具體演示 Date 類的使用。
  • 假設,某一天特定時間要去做一件事,而且那個時間已經(jīng)過去一分鐘之后才想起來這件事還沒有辦,這時系統(tǒng)將會提示已經(jīng)過去了多 長時間。

具體的代碼如下:

import java.util.Date;
import java.util.Scanner;

public class Test11 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("請輸入要做的事情:");
        String title = input.next();
        Date date1 = new Date(); // 獲取當前日期
        System.out.println("[" + title + "] 這件事發(fā)生時間為:" + date1);
        try {
            Thread.sleep(60000);// 暫停 1 分鐘
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        Date date2 = new Date();
        System.out.println("現(xiàn)在時間為:" + date2);
        if (date2.before(date1)) {
            System.out.println("你還有 " + (date2.getTime() - date1.getTime()) / 1000 + " 秒需要去完成【" + title + "】這件事!");
        } else {
            System.out.println("【" + title + "】事情已經(jīng)過去了 " + (date2.getTime() - date1.getTime()) / 1000 + " 秒");
        }
    }
}

在該程序中,分別使用 Date 類的無參數(shù)構造方法創(chuàng)建了兩個 Date 對象。

在創(chuàng)建完第一個 Date 對象后,使用 Thread.sleep() 方法讓程序休眠 60 秒,然后再創(chuàng)建第二個 Date 對象,這樣第二個 Date 對象所表示的時間將會在第一個 Date 對象所表示時間之后,因此“date2.before(date1)”條件表達式不成立,從而執(zhí)行 else 塊中的代碼,表示事情已經(jīng)發(fā)生過。

運行該程序,執(zhí)行結果如下所示:

請輸入要做的事情:
收快遞
【收快遞】這件事發(fā)生時間為:Fri Oct 12 11:11:07 CST 2018
現(xiàn)在時間為:Fri Oct 12 11:12:07 CST 2018
【收快遞】事情已經(jīng)過去了 60 秒

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • spring?boot前后端交互之數(shù)據(jù)格式轉(zhuǎn)換問題

    spring?boot前后端交互之數(shù)據(jù)格式轉(zhuǎn)換問題

    這篇文章主要介紹了spring?boot前后端交互之數(shù)據(jù)格式轉(zhuǎn)換,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • java中你的項目應該如何正確分層

    java中你的項目應該如何正確分層

    這篇文章主要介紹了java中你的項目應該如何正確分層,業(yè)務分層對于代碼規(guī)范是比較重要,決定著以后的代碼是否可復用,感興趣的可以了解一下
    2021-04-04
  • Spring裝配bean方法實例總結

    Spring裝配bean方法實例總結

    這篇文章主要介紹了spring裝配bean方法實例總結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • 初識sa-token及登錄授權簡單實現(xiàn)

    初識sa-token及登錄授權簡單實現(xiàn)

    這篇文章主要為大家介紹了sa-token及登錄授權簡單實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Kotlin 和 Java 混合開發(fā)入門教程

    Kotlin 和 Java 混合開發(fā)入門教程

    這篇文章主要介紹了入門 Kotlin 和 Java 混合開發(fā),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • SpringMVC的處理器攔截器HandlerInterceptor詳解

    SpringMVC的處理器攔截器HandlerInterceptor詳解

    這篇文章主要介紹了SpringMVC的處理器攔截器HandlerInterceptor詳解,SpringWebMVC的處理器攔截器,類似于Servlet開發(fā)中的過濾器Filter,用于處理器進行預處理和后處理,需要的朋友可以參考下
    2024-01-01
  • Hibernate的各種保存方式的區(qū)別詳解

    Hibernate的各種保存方式的區(qū)別詳解

    今天小編就為大家分享一篇關于Hibernate的各種保存方式的區(qū)別詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 當mybatis返回值遇見內(nèi)部類的問題

    當mybatis返回值遇見內(nèi)部類的問題

    這篇文章主要介紹了當mybatis返回值遇見內(nèi)部類的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java編碼輔助工具Lombok用法詳解

    Java編碼輔助工具Lombok用法詳解

    這篇文章主要介紹了Java編碼輔助工具Lombok用法詳解,可以使用Lombok來避免這種重復的操作,減少非核心代碼的臃腫,提高編碼效率,需要的朋友可以參考下
    2019-06-06
  • 使用Jmeter進行http接口測試的詳細流程

    使用Jmeter進行http接口測試的詳細流程

    本文主要針對http接口進行測試,使用Jmeter工具實現(xiàn),  Jmter工具設計之初是用于做性能測試的,它在實現(xiàn)對各種接口的調(diào)用方面已經(jīng)做的比較成熟,因此,本次直接使用Jmeter工具來完成對Http接口的測試,需要的朋友可以參考下
    2024-12-12

最新評論