Java Data i czas
Przyjrzyjmy siฤ najpierw parametrom skลadajฤ cym siฤ z a Data.
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
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


