Zielony Smok - logo witryny

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()
Metoda 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()
Metoda 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)
Metoda 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)
Metoda 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()
Metoda 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)
Metoda 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)
Metoda 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