Java SimpleDateFormat – Java dátumformátum
Bevezetés
A SimpleDateFormat osztály a java.text csomag része, és lehetővé teszi a dátumok és időpontok formázását és elemzését. Számos módszert és konstruktort biztosít a dátum- és időadatok formázására és elemzésére különböző formátumokban, például ISO 8601, Unix időbélyeg és egyéni minták. A SimpleDateFormat a LocalDateFormat leszármazottja, amely a dátumok és időpontok nemzetközi beállításfüggő formázását és elemzését teszi lehetővé.
SimpleDateFormat használata
A SimpleDateFormat használatához létre kell hoznia egy példányt a kívánt formátummal. A SimpleDateFormat konstruktora a formátummintát várja paraméterként. A következő példa egy SimpleDateFormat példányt hoz létre, amely az ISO 8601 szabvány szerinti formátumban formázza a dátumokat:
java
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
Dátumformázás
A SimpleDateFormat osztály format() módszerét használhatja dátum- és időadatok formázására. A format() módszer egy Date objektumot vár paraméterként, és a formátummintának megfelelően formázott Stringet ad vissza. A következő példa egy Date objektumot formáz az ISO 8601 formátumban:
java
Date date = new Date();
String formattedDate = sdf.format(date);
System.out.println(formattedDate); // Példa kimenet: 2023-03-08T10:15:30.000
Dátumelemzés
A SimpleDateFormat osztály parse() módszerét használhatja dátum- és időadatok elemzésére. A parse() módszer egy formázott Stringet vár paraméterként, és a formátummintának megfelelő Date objektumot ad vissza. A következő példa egy ISO 8601 formátumú Stringet elemez Date objektummá:
java
String dateString = "2023-03-08T10:15:30.000";
Date date = sdf.parse(dateString);
Formátumminták
A SimpleDateFormat osztály számos előre definiált formátummintát biztosít, amelyek a leggyakoribb dátum- és időformátumokat fedik le. Ezek a minták a java.text.SimpleDateFormat.DATE_FORMAT és a java.text.SimpleDateFormat.TIME_FORMAT konstansokban találhatók. A következő táblázat néhány gyakran használt formátummintát sorol fel:
| Formátumm minta | Leírás |
|—|—|
| y | Év |
| M | Hónap (1-12) |
| d | Nap (1-31) |
| H | Óra (0-23) |
| m | Perc (0-59) |
| s | Másodperc (0-59) |
| S | Ezredmásodperc (0-999) |
Szükség esetén saját egyéni formátummintákat is definiálhat. Az egyéni formátumminták a Unicode szabvány által meghatározott szimbólumokat használják dátum- és időadatok formázására és elemzésére.
Beállítások
A SimpleDateFormat osztály számos beállítást tesz lehetővé a dátum- és időformázás és elemzés testreszabásához. Ezek a beállítások a következők:
* Lenient: Ez a beállítás vezérli, hogy a SimpleDateFormat engedélyezi-e a formázási és elemzési hibákat. Ha a Lenient beállítás true, a SimpleDateFormat megpróbálja helyreállítani a hibákat, ha a false, a SimpleDateFormat kivételt dob.
* Locale: Ez a beállítás vezérli a dátum- és időformázáshoz és elemzéshez használt helyi beállítást.
* TimeZone: Ez a beállítás vezérli az időzóna eltolódást, amelyet a dátum- és időformázáshoz és elemzéshez használnak.
Példák
Az alábbiakban néhány példa található a SimpleDateFormat osztály használatára:
* Egy dátum formázása ISO 8601 formátumban:
java
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
Date date = new Date();
String formattedDate = sdf.format(date);
* Egy dátum elemzése ISO 8601 formátumból:
java
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
String dateString = "2023-03-08T10:15:30.000";
Date date = sdf.parse(dateString);
* Egy dátum formázása magyar nyelven:
java
SimpleDateFormat sdf = new SimpleDateFormat("yyyy. MMMM dd., EEEE", new Locale("hu"));
Date date = new Date();
String formattedDate = sdf.format(date);
Következtetés
A SimpleDateFormat osztály egy erőteljes eszköz a dátum- és időadatok formázásához és elemzéséhez. Számos módszert és konstruktort biztosít a dátum- és időadatok formázására és elemzésére különböző formátumokban, például ISO 8601, Unix időbélyeg és egyéni minták. A SimpleDateFormat a Java API fontos része, amely a dátum- és időadatok kezelését teszi lehetővé az alkalmazásokban.
GYIK
1. Mi a SimpleDateFormat osztály célja?
A SimpleDateFormat osztály célja a dátum- és időadatok formázása és elemzése.
2. Hogyan hozhatok létre egy SimpleDateFormat példányt?
Létrehozhat egy SimpleDateFormat példányt a kívánt formátummintát paraméterként átadva a konstruktora számára.
3. Hogyan formázhatok egy dátumot SimpleDateFormat segítségével?
Használja a format() metódust, hogy egy dátumot a formátummintának megfelelően formázzon.
4. Hogyan elemezhetek egy dátumot SimpleDateFormat segítségével?
Használja a parse() metódust, hogy egy dátumot a formátummintának megfelelően elemezzen.
5. Mi a Lenient beállítás?
A Lenient beállítás vezérli, hogy a SimpleDateFormat engedélyezi-e a formázási és elemzési hibákat.
6. Mi a Locale beállítás?
A Locale beállítás vezérli a dátum- és időformázáshoz és elemzéshez használt helyi beállítást.
7. Mi a TimeZone beállítás?
A TimeZone beállítás vezérli az időzóna eltolódást, amelyet a dátum- és időformázáshoz és elemzéshez használnak.
8. Hogyan formázhatok egy dátumot magyar nyelven?
Hozzon létre egy SimpleDateFormat példányt a magyar Locale-lel, és használja a kívánt formátummintát.
9. Hogyan elemezhetek egy dátumot, amely nem felel meg pontosan a formátummintának?
A SimpleDateFormat lenient beállítása true értékre állítja, hogy a SimpleDateFormat megpróbálja helyreállítani a formázási és elemzési hibákat.
10. Milyen előre definiált formátummintákat biztosít a SimpleDateFormat?
A SimpleDateFormat számos előre definiált formátummintát biztosít, amelyek a leggyakoribb dátum- és időformátumokat fedik le. Ezek a minták a java.text.SimpleDateFormat.DATE_FORMAT és a java.text.SimpleDateFormat.TIME_FORMAT konstansokban találhatók.