Daty i czas: Klasa java.text.DateFormat (1)
Klasa java.text.DateFormat (1)
Klasa abstrakcyjna dziedzicząca po klasie Format służąca do tworzenia podklas zapewniających obsługę formatowania i parsowania dat oraz czasu w sposób niezależny od języka. Data jest reprezentowana jako obiekt Date albo jako liczba milisekund, które upłynęły od 1 stycznia 1970 00:00:00 GMT.
Formatowanie dat i czasu zależy głównie od lokalizacji oraz wybranego stylu prezentacji daty. Metody zapewniają formatowanie dat, formatowanie czasu oraz formatowanie łącznie daty i czasu.
Obiekty DateFormat nie są synchronizowane. Dokumentacja zaleca stosowanie oddzielnego wątku dla każdego formatu. Jeśli wiele wątków współzawodniczy o dostęp do obiektu, obiekt musi być synchronizowany zewnętrznie.
Klasy statyczne
- DateFormat.Field – definiuje zestaw stałych używanych w obiektach AttributedCharacterIterator zwracanych przez DateFormat.formatToCharacterIterator oraz jako identyfikatory pola w obiektach FieldPosition. Klasa ma dwie rzadko używane metody int getCalendarField() oraz DateFormat.Field.ofCalendarField(int calendarField). Obie pokazane są w klasie Listing079, którego tutaj nie cytujemy. Stałe tej klasy zostały pokazane poniżej.
Pola statyczne
Stałe używane w FieldPosition. Wszystkie pola są typu int
.
- AM_PM_FIELD
- DATE_FIELD
- DATE_OF_WEEK_FIELD
- DAY_OF_WEEK_IN_MONTH_FIELD
- DAY_OF_YEAR_FIELD
- ERA_FIELD
- HOUR_OF_DAY0_FIELD – dodaje godzinę z rolowaniem: 23:59 + 01:00 daje 00:59
- HOUR_OF_DAY1_FIELD – dodaje czas bez rolowania: 23:59 + 01:00 daje 24:59
- HOUR0_FIELD – dodaje godzinę z rolowaniem przy zegarze 12-godzinnym 11:30PM + 1h daje 00:30AM
- HOUR1_FIELD – dodaje godzinę bez rolowania przy zegarze 12-godzinnym 11:30PM + 1h daje 12:30AM
- MEDIUM
- MILLISECOND_FIELD
- MINUTE_FIELD
- MONTH_FIELD
- SECOND_FIELD
- TIMEZONE_FIELD
- WEEK_OF_MONTH_FIELD
- WEEK_OF_YEAR_FIELD
- YEAR_FIELD
Stałe używane do określania stylu formatowania daty i czasu
- DEFAULT – oznacza to samo co MEDIUM
- FULL – pełny
- LONG – długi
- MEDIUM – średni
- SHORT – krótki (skrócony)
Konstruktory
Konstruktor protected nie jest dostępny spoza pakietu. Obiekty tej klasy można uzyskiwać przy użyciu metod fabrycznych.
- protected DateFormat()
Metody
DateFormat.getInstance()
Zwraca | Metoda | Opis |
---|---|---|
DateFormat | DateFormat.getInstance() | Zwraca obiekt formatujący datę i czas w stylu SHORT |
package dt10.java_text_dateformat; import java.text.*; import java.util.*; class Listing062 { public static void main(String[] args) { Date date = new Date(); DateFormat df1 = DateFormat.getInstance(); String df1s = df1.format(date); System.out.println("df1s: " + df1s); } }
df1s: 07.10.2018, 13:00
DateFormat.getDateInstance()
Zwraca | Metoda | Opis |
---|---|---|
DateFormat | DateFormat.getDateInstance() | Zwraca obiekt formatujący datę w stylu domyślnym dla domyślnej lokalizacji |
package dt10.java_text_dateformat; import java.text.*; import java.util.*; class Listing063 { public static void main(String[] args) { Date date = new Date(); DateFormat df1 = DateFormat.getDateInstance(); String df1s = df1.format(date); System.out.println("df1s: " + df1s); } }
df1s: 7 paź 2018
DateFormat.getDateInstance(int style)
Zwraca | Metoda | Opis |
---|---|---|
DateFormat | DateFormat.getDateInstance(int style) | Zwraca obiekt formatujący datę w podanym stylu dla domyślnej lokalizacji |
package dt10.java_text_dateformat; import java.text.*; import java.util.*; class Listing064 { public static void main(String[] args) { Date date = new Date(); DateFormat df1 = DateFormat.getDateInstance(DateFormat.FULL); String s1 = df1.format(date); System.out.println("s1: " + s1); DateFormat df2 = DateFormat.getDateInstance(DateFormat.LONG); String s2 = df2.format(date); System.out.println("s2: " + s2); DateFormat df3 = DateFormat.getDateInstance(DateFormat.MEDIUM); String s3 = df3.format(date); System.out.println("s3: " + s3); DateFormat df4 = DateFormat.getDateInstance(DateFormat.SHORT); String s4 = df4.format(date); System.out.println("s4: " + s4); } }
s1: niedziela, 7 października 2018 s2: 7 października 2018 s3: 7 paź 2018 s4: 07.10.2018
DateFormat.getDateInstance(int style, Locale aLocale)
Zwraca | Metoda | Opis |
---|---|---|
DateFormat | DateFormat.getDateInstance(int style, Locale aLocale) | Zawraca obiekt formatujący datę w podanym stylu dla podanej lokalizacji |
package dt10.java_text_dateformat; import java.text.*; import java.util.*; class Listing065 { public static void main(String[] args) { Date date = new Date(); DateFormat df1 = DateFormat.getDateInstance(DateFormat.FULL, new Locale("PL")); String s1 = df1.format(date); System.out.println("s1: " + s1); DateFormat df2 = DateFormat.getDateInstance(DateFormat.FULL, new Locale("ES")); String s2 = df2.format(date); System.out.println("s2: " + s2); } }
s1: niedziela, 7 października 2018 s2: domingo, 7 de octubre de 2018
DateFormat.getTimeInstance()
Zwraca | Metoda | Opis |
---|---|---|
DateFormat | DateFormat.getTimeInstance() | Zwraca obiekt formatujący czas w stylu domyślnym dla domyślnej lokalizacji |
package dt10.java_text_dateformat; import java.text.*; import java.util.*; class Listing066 { public static void main(String[] args) { Date date = new Date(); DateFormat df1 = DateFormat.getTimeInstance(); String df1s = df1.format(date); System.out.println("df1s: " + df1s); } }
df1s: 14:02:01
DateFormat.getTimeInstance(int style)
Zwraca | Metoda | Opis |
---|---|---|
DateFormat | DateFormat.getTimeInstance(int style) | Zwraca obiekt formatujący czas w podanym stylu dla domyślnej lokalizacji |
package dt10.java_text_dateformat; import java.text.*; import java.util.*; class Listing067 { public static void main(String[] args) { Date date = new Date(); DateFormat df1 = DateFormat.getTimeInstance(DateFormat.FULL); String s1 = df1.format(date); System.out.println("s1: " + s1); DateFormat df2 = DateFormat.getTimeInstance(DateFormat.LONG); String s2 = df2.format(date); System.out.println("s2: " + s2); DateFormat df3 = DateFormat.getTimeInstance(DateFormat.MEDIUM); String s3 = df3.format(date); System.out.println("s3: " + s3); DateFormat df4 = DateFormat.getTimeInstance(DateFormat.SHORT); String s4 = df4.format(date); System.out.println("s4: " + s4); } }
s1: 14:11:47 czas środkowoeuropejski letni s2: 14:11:47 CEST s3: 14:11:47 s4: 14:11
DateFormat.getTimeInstance(int style, Locale aLocale)
Zwraca | Metoda | Opis |
---|---|---|
DateFormat | DateFormat.getTimeInstance(int style, Locale aLocale) | Zawraca obiekt formatujący czas w podanym stylu dla podanej lokalizacji |
package dt10.java_text_dateformat; import java.text.*; import java.util.*; class Listing068 { public static void main(String[] args) { Date date = new Date(); DateFormat df1 = DateFormat.getTimeInstance(DateFormat.FULL, new Locale("PL")); String s1 = df1.format(date); System.out.println("s1: " + s1); DateFormat df2 = DateFormat.getTimeInstance(DateFormat.FULL, new Locale("ES")); String s2 = df2.format(date); System.out.println("s2: " + s2); } }
df1s: 7 paź 2018, 14:16:49