Java Datum a čas

Nejprve pochopíme parametry, které se skládají z a Datum.

Jak používat Date in Java

Bude obsahovat především –

  • Jedno rok (buď 2 nebo 4 číslice)
  • Jedno měsíc (buď 2 číslicemi, prvními 3 písmeny měsíce nebo celým slovem měsíce).
  • Jedno datum (bude to skutečné datum v měsíci).
  • Jedno den (den v daném datu – např. Ne, Po, Út atd.)

Pokud jde o počítačové systémy, existuje poměrně mnoho parametrů, které lze použít ke spojení s datem. Uvidíme je v dalších částech tohoto tématu.

Zobrazit datum v Java

Nyní se podívejme, jak na to Java poskytněte nám Datum. Nejprve uvidíme, jak získat aktuální datum -

Java poskytuje třídu Date v rámci balíčku java.util. Balíček poskytuje několik metod, jak si s datem pohrát.

Objekt Date můžete použít vyvoláním konstruktoru třídy Date následovně:

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());
 }
}

Výstup:

Wed Nov 29 06:36:22 UTC 2017

Ve výše uvedeném příkladu datum zobrazené ve výchozím formátu. Pokud chceme zobrazit datum a čas v jiném formátu, nejprve porozumějte Formátování data.

SimpleDateFormat: Analýza a formátování dat

Všichni jste se museli ve své školce učit abecedu….

Pojďme se nyní naučit ABC formátu data.

Dopis Složka data nebo času Příklady
G Označení éry AD
y Rok výroby 2018
M Měsíc v roce července nebo července nebo 07
w Týden v roce 27
W Týden v měsíci 2
D Den v roce 189
d Den v měsíci 10
F Den v týdnu v měsíci 2
E Název dne v týdnu úterý nebo úterý
u Číslo dne v týdnu (1 = Monday, …, 7 = neděle) 1
a Značka dopoledne/odpoledne PM
H Hodina za den (0-23) 0
k Hodina za den (1-24) 24
K Hodina v dopoledních hodinách (0-11) 0
h Hodina v dopoledních hodinách (1-12) 12
m Minuta za hodinu 30
s Druhý za minutu 55
S Milisekunda 978
z Časové pásmo tichomořský standardní čas; PST; GMT-08:00
Z Časové pásmo -0800
X Časové pásmo -08 nebo -0800 nebo -08:00

Nebojte se, nemusíte si je všechny pamatovat, můžete je kdykoli odkázat, když potřebujete naformátovat konkrétní datum.

Jak používat SimpleDateFormat?

Java poskytuje třídu nazvanou SimpleDateFormat, která vám umožňuje formátovat a analyzovat data podle vašich požadavků.

Výše uvedené znaky můžete použít k určení formátu-

Například:

1) Požadovaný formát data: 2012.10.23 20:20:45 PST

Zadaný vhodný formát data bude - yyyy.MM.dd HH:mm:ss zzz

2) Požadovaný formát data:09:30:00 AM 23-May-2012

Zadaný vhodný formát data bude -hh:mm:ss a dd-MMM-yyyy

Tip: Pozor na velká písmena. Pokud zaměníte M s m, dostanete nežádoucí výsledky!

Pojďme se to naučit na příkladu kódu.

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
 }
}

Výstup:

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

Příklad porovnání dat

Příklad porovnání dat

Nejužitečnější metodou porovnání dat je použití metody – CompareTo()

Pojďme se podívat na níže uvedený fragment kódu-

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 !!");
  }
 }
}

Výstup:

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