Java Data i czas

Przyjrzyjmy siฤ™ najpierw parametrom skล‚adajฤ…cym siฤ™ z a Data.

Jak korzystaฤ‡ z daty w Java

Bฤ™dzie zawieraฤ‡ przede wszystkim โ€“

  • rok (w 2 lub 4 cyfrach)
  • miesiฤ…c (2 cyfry, pierwsze 3 litery miesiฤ…ca lub caล‚e sล‚owo miesiฤ…ca).
  • dane (bฤ™dzie to faktyczna data miesiฤ…ca).
  • dzieล„ (dzieล„ w danej dacie โ€“ np. niedziela, poniedziaล‚ek, wtorek itp.)

Jeล›li chodzi o systemy komputerowe, istnieje wiele parametrรณw, ktรณre moลผna wykorzystaฤ‡ do skojarzenia z datฤ…. Zobaczymy je w dalszych czฤ™ล›ciach tego tematu.

Wyล›wietl datฤ™ w Java

Teraz zobaczmy jak Java podaj nam datฤ™. Najpierw zobaczymy, jak uzyskaฤ‡ bieลผฤ…cฤ… datฤ™-

Java udostฤ™pnia klasฤ™ Date w pakiecie java.util. Pakiet udostฤ™pnia kilka metod umoลผliwiajฤ…cych zabawฤ™ z datฤ….

Obiektu Date moลผna uลผyฤ‡ wywoล‚ujฤ…c konstruktor klasy Date w nastฤ™pujฤ…cy sposรณb:

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

Wyjล›cie:

Wed Nov 29 06:36:22 UTC 2017

W powyลผszym przykล‚adzie data pokazana w formacie domyล›lnym. Jeล›li chcemy pokazaฤ‡ datฤ™ i godzinฤ™ w innym formacie, najpierw zapoznaj siฤ™ z formatowaniem daty.

SimpleDateFormat: analizuj i formatuj daty

Kaลผdy z Was musiaล‚ uczyฤ‡ siฤ™ alfabetu w swoim przedszkoluโ€ฆ.

Nauczmy siฤ™ teraz ABC formatu daty.

List Skล‚adnik daty lub godziny Przykล‚ady
G Oznaczenie epoki AD
y Rok 2018
M Miesiฤ…c w roku Lipiec lub lipiec lub 07
w Tydzieล„ w roku 27
W Tydzieล„ w miesiฤ…cu 2
D Dzieล„ w roku 189
d Dzieล„ w miesiฤ…cu 10
F Dzieล„ tygodnia w miesiฤ…cu 2
E Nazwa dnia w tygodniu wtorek lub wtorek
u Numer dnia tygodnia (1 = Monday, โ€ฆ, 7 = niedziela) 1
a Znacznik am/pm PM
H Godzina w dniu (0-23) 0
k Godzina w dniu (1-24) 24
K Godzina w am/pm (0-11) 0
h Godzina w am/pm (1-12) 12
m Minuta w godzinie 30
s Drugi w ciฤ…gu minuty 55
S Milisekunda 978
z strefa czasu Czas pacyficzny; PST; GMT-08:00
Z strefa czasu -0800
X strefa czasu -08 lub -0800 lub -08:00

Nie martw siฤ™, nie musisz o tym wszystkim pamiฤ™taฤ‡, moลผesz do nich zajrzeฤ‡ w dowolnym momencie, gdy chcesz sformatowaฤ‡ konkretnฤ… datฤ™.

Jak korzystaฤ‡ z SimpleDateFormat?

Java udostฤ™pnia klasฤ™ o nazwie SimpleDateFormat, ktรณra umoลผliwia formatowanie i analizowanie dat zgodnie z wล‚asnymi wymaganiami.

Moลผesz uลผyฤ‡ powyลผszych znakรณw, aby okreล›liฤ‡ format-

Na przykล‚ad:

1) Wymagany format daty: 2012.10.23, 20:20:45 czasu PST

Okreล›lony odpowiedni format daty bฤ™dzie: rrrr.MM.dd GG:mm:ss zzz

2) Wymagany format daty:09:30:00 AM 23-May-2012

Okreล›lony odpowiedni format daty bฤ™dzie:gg:mm:ss i dd-MMM-rrrr

Wskazรณwka: Uwaลผaj na wielkoล›ฤ‡ liter. Jeล›li pomylisz M z m, otrzymasz niepoลผฤ…dane rezultaty!

Nauczmy siฤ™ tego na przykล‚adzie kodu.

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

Wyjล›cie:

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

Przykล‚ad porรณwnania dat

Przykล‚ad porรณwnania dat

Najbardziej uลผytecznฤ… metodฤ… porรณwnywania dat jest metoda โ€“ CompareTo()

Rzuฤ‡my okiem na poniลผszy fragment kodu-

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

Wyjล›cie:

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

Podsumuj ten post nastฤ™pujฤ…co: