Pierwsza część artykułu

Klasa java.util.Calendar (2)

Metody

Metod jest zbyt dużo (53) aby je przedstawić w tabeli. Pogrupujemy je, aby ułatwić orientację.

Tworzenie instancji

Calendar.getInstance()

Tworzy instancję kalendarza w domyślnej lokalizacji, strefie czasowej domyślnej dla lokalizacji, ustawiony na bieżącą datę i czas, zgodny ze strefą czasową.

Metoda Calendar.getInstance()
Zwraca Metoda Opis
Calendar Calendar.getInstance() Tworzy instancję kalendarza w domyślnej lokalizacji, strefie czasowej domyślnej dla lokalizacji, ustawiony na bieżącą datę i czas, zgodny ze strefą czasową
package dt08.java_util_calendar;
import java.util.*;
public class Listing039 {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        System.out.println("cal: " + cal.toString());
    }
}
cal: java.util.GregorianCalendar[time=1538670558098,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/Belgrade",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=119,lastRule=java.util.SimpleTimeZone[id=Europe/Belgrade,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2018,MONTH=9,WEEK_OF_YEAR=40,WEEK_OF_MONTH=1,DAY_OF_MONTH=4,DAY_OF_YEAR=277,DAY_OF_WEEK=5,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=6,HOUR_OF_DAY=18,MINUTE=29,SECOND=18,MILLISECOND=98,ZONE_OFFSET=3600000,DST_OFFSET=3600000]
Calendar.getInstance(Locale)

Metoda Calendar.getInstance(Locale)
Zwraca Metoda Opis
Calendar Calendar.getInstance(Locale aLocale) Tworzy instancję kalendarza w podanej lokalizacji, domyślnej strefie czasowej z domyślnymi datą i czasem
package dt08.java_util_calendar;
import java.util.*;
public class Listing040 {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance(Locale.UK);
        System.out.println("cal: " + cal.toString());
    }
}
cal: java.util.GregorianCalendar[time=1538727527842,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/Belgrade",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=119,lastRule=java.util.SimpleTimeZone[id=Europe/Belgrade,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2018,MONTH=9,WEEK_OF_YEAR=40,WEEK_OF_MONTH=1,DAY_OF_MONTH=5,DAY_OF_YEAR=278,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=18,SECOND=47,MILLISECOND=842,ZONE_OFFSET=3600000,DST_OFFSET=3600000]
Calendar.getInstance(TimeZone)
Metoda Calendar.getInstance(TimeZone)
Zwraca Metoda Opis
Calendar Calendar.getInstance(TimeZone zone) Tworzy instancję kalendarza dla podanej strefie czasowej, w domyślnej lokalizacji i domyślnie ustawionymi datą i czasem
package dt08.java_util_calendar;
import java.util.*;
public class Listing041 {
    public static void main(String[] args) {
        TimeZone tz = TimeZone.getTimeZone("Europe/Warsaw");
        Calendar cal = Calendar.getInstance(tz);
        System.out.println("cal: " + cal.toString());
    }
}
cal: java.util.GregorianCalendar[time=1538727689115,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/Warsaw",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=165,lastRule=java.util.SimpleTimeZone[id=Europe/Warsaw,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2018,MONTH=9,WEEK_OF_YEAR=40,WEEK_OF_MONTH=1,DAY_OF_MONTH=5,DAY_OF_YEAR=278,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=21,SECOND=29,MILLISECOND=115,ZONE_OFFSET=3600000,DST_OFFSET=3600000]
Calendar.getInstance(TimeZone, Locale)
Metoda Calendar.getInstance(TimeZone, Locale
Zwraca Metoda Opis
Calendar Calendar.getInstance(TimeZone zone, Locale aLocale) Tworzy instancję kalendarza dla podanej lokalizacji i podanej strefy czasowej z domyślnymi datą i czasem.
package dt08.java_util_calendar;
import java.util.*;
public class Listing042 {
    public static void main(String[] args) {
        TimeZone tz = TimeZone.getTimeZone("Europe/Warsaw");
        Calendar cal = Calendar.getInstance(tz, Locale.getDefault());
        System.out.println("cal: " + cal.toString());
    }
}
cal: java.util.GregorianCalendar[time=1538727938337,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/Warsaw",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=165,lastRule=java.util.SimpleTimeZone[id=Europe/Warsaw,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2018,MONTH=9,WEEK_OF_YEAR=40,WEEK_OF_MONTH=1,DAY_OF_MONTH=5,DAY_OF_YEAR=278,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=25,SECOND=38,MILLISECOND=337,ZONE_OFFSET=3600000,DST_OFFSET=3600000]

Pobieranie wartości pól

get(int)
Metoda get(int)
Zwraca Metoda Opis
int get(int field) Pobieramy wartość określonego pola kalendarza. Wartość int jest jedną ze stałych podanych wyżej. Użycie metody implikuje przeliczenie i aktualizację danych. W trybie ‘lenient’ wszystkie pola kalendarza są normalizowane. W trybie ‘non-lenient’ wartości wszystkich pól są sprawdzane – jeśli któraś z wartości przekracza dopuszczalny zakres wyrzucany jest wyjątek. Normalizację i walidację wykonuje metoda complete().
package dt08.java_util_calendar;
import java.util.*;
public class Listing043 {
    public static void main(String[] args) {
        SimpleTimeZone stz = new SimpleTimeZone(3600000, "Europe/Warsaw",
                Calendar.MARCH, -1, Calendar.SUNDAY, 7200000,
                SimpleTimeZone.WALL_TIME, Calendar.OCTOBER, -1, Calendar.SUNDAY,
                10800000, SimpleTimeZone.WALL_TIME, 3600000);
        stz.setStartYear(1996);
        Calendar cal = Calendar.getInstance(stz, Locale.getDefault());
        int year = cal.get(Calendar.YEAR);
        System.out.println("year: " + year);
        int month = cal.get(Calendar.MONTH);
        System.out.println("month: " + month);
    }
}
year: 2018
month: 9
getActualMaximum(int)
Metoda getActualMaximum(int field)
Zwraca Metoda Opis
int getActualMaximum(int field) Aktualna największa dopuszczalna wartość podanego pola w ‘time’ tego kalendarza. Pole DAY może mieć maksimum równe 28, 29, 30, 31 w zależności od aktualnego miesiąca. W kalendarzu hebrajskim MONTH może mieć wartość 13, etc.
getMaximum(int)
Metoda getMaximum(int)
Zwraca Metoda Opis
int getMaximum(int field) abstract. Maksymalna (kiedykolwiek możliwa) wartość pola w tym kalendarzu
getLeastMaximum(int)
Metoda getLeastMaximum(int)
Zwraca Metoda Opis
int getLeastMaximum(int field) Zwraca najmniejszą wartość maksymalną dla danego pola, którą może zwrócić metoda getActualMaximum().
package dt08.java_util_calendar;
import java.util.*;
public class Listing044 {
    public static void main(String[] args) {
        TimeZone tz = TimeZone.getTimeZone("Europe/Warsaw");
        Calendar cal = Calendar.getInstance(tz, Locale.getDefault());
        int amaxMonth = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
        System.out.println("amaxMonth: " + amaxMonth);
        int maxMonth = cal.getMaximum(Calendar.DAY_OF_MONTH);
        System.out.println("maxMonth: " + maxMonth);
        int lmaxMonth = cal.getLeastMaximum(Calendar.DAY_OF_MONTH);
        System.out.println("lmaxMonth: " + lmaxMonth);
    }
}
amaxMonth: 31
maxMonth: 31
lmaxMonth: 28
getActualMinimum(int)
Metoda getActualMinimum(int)
Zwraca Metoda Opis
int getActualMinimum(int field) Aktualna najmniejsza dopuszczalna wartość podanego pola w ‘time’ tego kalendarza.
getMinimum(int)
Metoda getMinimum(int)
Zwraca Metoda Opis
int getMinimum(int) Minimalna (kiedykolwiek możliwa) wartość pola w tym kalendarzu
getGreatestMinimum(int)
Metoda getGreatestMinimum(int)
Zwraca Metoda Opis
int getGreatestMinimum(int field) Zwraca największą wartość minimalną dla danego pola, którą może zwrócić metoda getActualMinimum().
package dt08.java_util_calendar;
import java.util.*;
public class Listing045 {
    public static void main(String[] args) {
        TimeZone tz = TimeZone.getTimeZone("Europe/Warsaw");
        Calendar cal = Calendar.getInstance(tz, Locale.getDefault());
        int aminMonth = cal.getActualMinimum(Calendar.YEAR);
        System.out.println("aminMonth: " + aminMonth);
        int minMonth = cal.getMinimum(Calendar.YEAR);
        System.out.println("minMonth: " + minMonth);
        int lminMonth = cal.getGreatestMinimum(Calendar.YEAR);
        System.out.println("lminMonth: " + lminMonth);
    }
}
aminMonth: 1
minMonth: 1
lminMonth: 1
Calendar.getAvailableCalendarTypes()
Metoda Calendar.getAvailableCalendarTypes()
Zwraca Metoda Opis
Set Calendar.getAvailableCalendarTypes() Zwraca listę typów kalendarza dostępnych w JVM
getCalendarType()
Metoda getCalendarType()
Zwraca Metoda Opis
String getCalendarType() Zwraca typ tego kalendarza.
Calendar.getAvailableLocales()
Metoda Calendar.getAvailableLocales()
Zwraca Metoda Opis
Locale[] Calendar.getAvailableLocales() Zwraca listę wszystkich dostępnych lokalizacji
getTimeZone()
Metoda getTimeZone()
Zwraca Metoda Opis
TimeZone getTimeZone() Zwraca strefę czasową tego kalendarza
package dt08.java_util_calendar;
import java.util.*;
public class Listing046 {
    public static void main(String[] args) {
        TimeZone tz = TimeZone.getTimeZone("Europe/Warsaw");
        Calendar cal = Calendar.getInstance(tz, Locale.getDefault());
        Set set = Calendar.getAvailableCalendarTypes();
        Iterator it = set.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
        Locale[] locs = Calendar.getAvailableLocales();
        for (int i = 1; i < locs.length; i++) {
            System.out.println(i + " " + locs[i - 1]);
        }
        String calType = cal.getCalendarType();
        System.out.println("calType: " + calType);
        TimeZone tz1 = cal.getTimeZone();
        System.out.println("tz1: " + tz1);
    }
}
C:\jdk-11\bin\java.exe "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.1.6\lib\idea_rt.jar=52312:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2018.1.6\bin" -Dfile.encoding=UTF-8 -p C:\Users\Jacek\IdeaProjects\datetime\out\production\datetime -m datetime/dt08.java_util_calendar.Listing046
gregory
buddhist
japanese
1
2 nn
3 ar_JO
4 bg
5 kea
6 nds
7 zu
8 am_ET
...
65 pl_PL
746 ms_BN
747 ccp_IN
calType: gregory
tz1: sun.util.calendar.ZoneInfo[id="Europe/Warsaw",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=165,lastRule=java.util.SimpleTimeZone[id=Europe/Warsaw,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]]
getFirstDayOfWeek()
Metoda getFirstDayOfWeek()
Zwraca Metoda Opis
int getFirstDayOfWeek() Zwraca pierwszy dzień tygodnia w tym kalendarzu
getMinimalDaysInFirstWeek()
Metoda getMinimalDaysInFirstWeek()
Zwraca Metoda Opis
int getMinimalDaysInFirstWeek() Zwraca minimalną liczbę dni tygodnia) wymaganych aby tydzień był zaliczony do tego roku, a nie do poprzedniego
isWeekDateSupported()
Metoda isWeekDateSupported()
Zwraca Metoda Opis
boolean isWeekDateSupported() Sprawdza czy system dopuszcza daty tygodniowe. Więcej w rozdziale poświęconym normie ISO 8601
getWeeksInWeekYear()
Metoda getWeeksInWeekYear()
Zwraca Metoda Opis
int getWeeksInWeekYear() Zwraca liczbę tygodni w roku tygodniowym. Więcej w rozdziale poświęconym normie ISO 8601
getWeekYear()
Metoda getWeekYear()
Zwraca Metoda Opis
int getWeekYear() Zwraca (aktualny) rok tygodniowy. Więcej w rozdziale poświęconym normie ISO 8601
package dt08.java_util_calendar;
import java.util.*;
public class Listing047 {
    public static void main(String[] args) {
        TimeZone tz = TimeZone.getTimeZone("Europe/Warsaw");
        Calendar cal = Calendar.getInstance(tz, Locale.getDefault());
        int fdw = cal.getFirstDayOfWeek();
        System.out.println("fdw: " + fdw);
        int minDays = cal.getMinimalDaysInFirstWeek();
        System.out.println("minDays: " + minDays);
        boolean wsup = cal.isWeekDateSupported();
        System.out.println("wsup: " + wsup);
        if (wsup) {
            int wy1 = cal.getWeeksInWeekYear();
            System.out.println("wy1: " + wy1);
            int wy2 = cal.getWeekYear();
            System.out.println("wy2: " + wy2);
        }
    }
}
fdw: 2
minDays: 4
wsup: true
wy1: 52
wy2: 2018
getTime()
Metoda getTime()
Zwraca Metoda Opis
Date getTime() Zwraca obiekt Date
getTimeInMillis()
Metoda getTimeInMillis()
Zwraca Metoda Opis
long getTimeInMillis() Zwraca liczbę milisekund jaka upłynęła od 1 stycznia 1970 r 00:00:00.000 GMT
package dt08.java_util_calendar;
import java.util.*;
public class Listing048 {
    public static void main(String[] args) {
        TimeZone tz = TimeZone.getTimeZone("Europe/Warsaw");
        Calendar cal = Calendar.getInstance(tz, Locale.getDefault());
        Date date = cal.getTime();
        System.out.println("date: " + date);
        long millis = cal.getTimeInMillis();
        System.out.println("milllis: " + millis);
    }
}
date: Fri Oct 05 11:06:41 CEST 2018
milllis: 1538730401827
getDisplayName(int, int, Locale)
Metoda getDisplayName(int, int, Locale)
Zwraca Metoda Opis
String getDisplayName(int field, int style, Locale locale) Zwraca nazwę dla podanego pola, w podanym stylu, dla podanej lokalizacji.
getDisplayNames(int, int, Locale)
Metoda getDisplayNames(int, int, Locale)
Zwraca Metoda Opis
Map getDisplayNames(int field, int style, Locale locale) Zwraca kolekcję (mapę) nazw dla podanego pola, stylu i dla podanej lokalizacji zawierającą nazwę i odpowiadające jej wartości
package dt08.java_util_calendar;
import java.util.*;
public class Listing049 {
    public static void main(String[] args) {
        TimeZone tz = TimeZone.getTimeZone("Europe/Warsaw");
        Calendar cal = Calendar.getInstance(tz, Locale.getDefault());
        String dn1 = cal.getDisplayName(Calendar.MONTH, Calendar.LONG,
                Locale.getDefault());
        String dn2 = cal.getDisplayName(Calendar.MONTH, Calendar.LONG_FORMAT,
                Locale.getDefault());
        String dn3 = cal.getDisplayName(Calendar.MONTH,
                Calendar.LONG_STANDALONE, Locale.getDefault());
        String dn4 = cal.getDisplayName(Calendar.MONTH, Calendar.NARROW_FORMAT,
                Locale.getDefault());
        String dn5 = cal.getDisplayName(Calendar.MONTH,
                Calendar.NARROW_STANDALONE, Locale.getDefault());
        String dn6 = cal.getDisplayName(Calendar.MONTH, Calendar.SHORT,
                Locale.getDefault());
        String dn7 = cal.getDisplayName(Calendar.MONTH, Calendar.SHORT_FORMAT,
                Locale.getDefault());
        String dn8 = cal.getDisplayName(Calendar.MONTH,
                Calendar.SHORT_STANDALONE, Locale.getDefault());
        System.out.println("dnl: " + dn1);
        System.out.println("dn2: " + dn2);
        System.out.println("dn3: " + dn3);
        System.out.println("dn4: " + dn4);
        System.out.println("dn5: " + dn5);
        System.out.println("dn6: " + dn6);
        System.out.println("dn7: " + dn7);
        System.out.println("dn8: " + dn8);
        System.out.println("----");
        Map map = cal.getDisplayNames(Calendar.MONTH,
                Calendar.ALL_STYLES, Locale.getDefault());
        Set> set = map.entrySet();
        for (Map.Entry entry : set) {
            System.out.println(entry.getKey());
        }
    }
}
dnl: października
dn2: października
dn3: październik
dn4: p
dn5: P
dn6: paź
dn7: paź
dn8: paź
----
października
październik
listopada
czerwiec
grudzień
kwiecień
kwietnia
listopad
sierpień
sierpnia
stycznia
wrzesień
września
czerwca
grudnia
styczeń
lipiec
lutego
marzec
lipca
marca
luty
maja
cze
gru
kwi
lip
lis
lut
maj
mar
paź
sie
sty
wrz

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *