Java 日付と時刻: SimpleDateFormat、現在の日付と比較

このチュートリアルでは、次のことを学びます –

まず、構成されているパラメータを理解しましょう。 日付.

Javaで日付を使用する方法

主に以下が含まれます –

  • また, (2桁または4桁)
  • また, (2 桁、月の最初の 3 文字、または月の単語全体のいずれか)。
  • また, date (実際の月の日付になります)。
  • また, (指定された日付の曜日 – 日、月、火など)

コンピュータ システムに関しては、日付と関連付けるために使用できるパラメータが非常に多くあります。私たちはそれらを次の中で見るでしょう。 later このトピックの一部。

Javaで日付を表示する

ここで、Java がどのように日付を提供するかを見てみましょう。 まず、現在の日付を取得する方法を見てみましょう。

Java は、java.util パッケージの下に Date クラスを提供します。このパッケージには、日付を操作するためのメソッドがいくつか用意されています。

次のように Date クラスのコンストラクターを呼び出すことで、Date オブジェクトを使用できます。

import java.util.Date;
class Date_Ex1 {
 public static void main(String args[]) {
  // Instantiate a Date object by invoking its constructor
  Date objDate = new Date();
  // Display the Date & Time using toString()
  System.out.println(objDate.toString());
 }
}

出力:

Wed Nov 29 06:36:22 UTC 2017

上記の例では日付がデフォルトの形式で表示されていますが、日付と時刻を別の形式で表示したい場合は、まず日付の形式を理解してください。

SimpleDateFormat: 日付の解析とフォーマット

皆さんも幼稚園でアルファベットを習ったことがあるはず…。

ここで、日付形式の ABC を学習しましょう。

手紙 日付または時刻コンポーネント
G 元号指定子 AD
y 2018
M 年の月 07月かXNUMX月かXNUMX月
w 年間の週 27
W 月内の週 2
D 年間の日 189
d 月の日 10
F 月の曜日 2
E 週の曜日名 火曜日または火曜日
u 週の日番号 (1 = Monday、…、7 = 日曜日) 1
a 午前/午後マーカー PM
H 0 日の時間 (23 ~ XNUMX) 0
k 1 日の時間 (24 ~ XNUMX) 24
K 午前/午後の時間 (0 ~ 11) 0
h 午前/午後の時間 (1 ~ 12) 12
m 時分 30
s 分単位で秒 55
S ミリ秒 978
z タイムゾーン 太平洋標準時。 PST; GMT-08:00
Z タイムゾーン -0800
X タイムゾーン -08 または -0800 または -08:00

心配しないでください。これらをすべて覚えておく必要はありません。特定の日付をフォーマットする必要があるときはいつでも参照できます。

SimpleDateFormat の使用方法

Java には、要件に応じて日付のフォーマットと解析を可能にする SimpleDateFormat と呼ばれるクラスが用意されています。

上記の文字を使用して形式を指定できます。

例:

1) 必要な日付形式: 2012.10.23 20:20:45 PST

指定された適切な日付形式は次のようになります。 yyyy.MM.dd HH:mm:ss zzz

2) 必要な日付形式:09:30:00 AM 23-May-2012

指定された適切な日付形式は次のようになります。hh:mm:ss dd-MMM-yyyy

ヒント: 文字の大文字化に注意してください。 M と m を間違えると、望ましくない結果が生じます。

コード例でこれを学びましょう。

import java.text.SimpleDateFormat;
import java.util.Date;
class TestDates_Format {
 public static void main(String args[]) {
  Date objDate = new Date(); // Current System Date and time is assigned to objDate
  System.out.println(objDate);
  String strDateFormat = "hh:mm:ss a dd-MMM-yyyy"; //Date format is Specified
  SimpleDateFormat objSDF = new SimpleDateFormat(strDateFormat); //Date format string is passed as an argument to the Date format object
  System.out.println(objSDF.format(objDate)); //Date formatting is applied to the current date
 }
}

出力:

Wed Nov 29 06:31:41 UTC 2017
06:31:41 AM 29-Nov-2017

日付の比較の例

日付の比較の例

日付を比較する最も便利な方法は、compareTo() メソッドを使用することです。

以下のコードスニペットを見てみましょう。

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

class TestDates_Compare {
 public static void main(String args[]) throws ParseException {

  SimpleDateFormat objSDF = new SimpleDateFormat("dd-mm-yyyy");
  Date dt_1 = objSDF.parse("20-08-1981");
  Date dt_2 = objSDF.parse("12-10-2012");

  System.out.println("Date1 : " + objSDF.format(dt_1));
  System.out.println("Date2 : " + objSDF.format(dt_2));

  if (dt_1.compareTo(dt_2) > 0) {
   System.out.println("Date 1 occurs after Date 2");
  } // compareTo method returns the value greater than 0 if this Date is after the Date argument.
  else if (dt_1.compareTo(dt_2) < 0) {
   System.out.println("Date 1 occurs before Date 2");
  } // compareTo method returns the value less than 0 if this Date is before the Date argument;
  else if (dt_1.compareTo(dt_2) == 0) {
   System.out.println("Both are same dates");
  } // compareTo method returns the value 0 if the argument Date is equal to the second Date;
  else {
   System.out.println("You seem to be a time traveller !!");
  }
 }
}

出力:

Date1 : 20-08-1981
Date2 : 12-10-2012
Date 1 occurs before Date 2