Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Čas API pojednavá čas obecným, globálním způsobem.

Podobné prezentace


Prezentace na téma: "Čas API pojednavá čas obecným, globálním způsobem."— Transkript prezentace:

1 Čas API pojednavá čas obecným, globálním způsobem.
Základem je standard UTC (Unified Time Corrected) počítaný od nuly ve čtvrtek :00:00 GMT (Greenwich Mean Time). Okamžitou hodnotu v msec lze zjistit nejsnadněji těmito způsoby: long t = System.currentTimeMillis( ); long t = new GregorianCalendar( ).getTimeInMillis( ); long t = Calendar.getInstance( ).getTimeInMillis( ); Hodnota t může být i záporná. Převod do čitelného tvar: Date d = new Date( t ); // …print( d ); A opačně: t = d.getTime( ); V chronologii nutno brát v úvahu historické reformy kalendáře: juliánskou a nyní zejména gregoriánskou. Reforma Gregora XIII: po 1582 Oct 4 následoval Fri 1582 Oct 15 (-10 dní). (1970 Jan 10) – (1 Jan 1) = dní. Rok 0 = 1, pro roky < 0 nefunguje. Pro Long.MAX_VALUE je poslední den Sun Aug :12:55 PJV04

2 Zpracování času K práci s časem slouží třídy z java.util:
Date - starší třída - značně deprecated. Calendar – je abstraktní, její potomek GregorianCalendar je konkrétní, obě respektují místní čas i zvyklosti ( TimeZone a Locale ). Volba jednotlivých údajů se zadává symbolicky - přičemž pozor: SUNDAY=1 ... SATURDAY=7, JANUARY=0 ... DECEMBER=11. Příklad: Calendar cal = Calendar.getInstance(); // fixes time and prints: System.out.println( cal.getTime( ) ); // Sat Mar 06 20:06:28 CET 2004 System.out.println( cal.get( cal.MONTH ) ); // 2 long System.nanoTime( ) – měří v nsec. Je vhodný pro stopky, tj. jen pro rozdílový čas. Nezdá se, že udává skutečně spotřebovaný CPU. Chronologii podporují balíček: java.time a podbalíčky: .chrono .format .temporal .zone PJV04

3 Zpracování času vv, dd. mm. yyyy hh:mm:ss ap zzz
Date da = new Date( ); // just now new Date( 1_000_000_000_000L ); // Sep 9, :46:40 AM Locale locale = Locale.getDefault( ); // = new Locale("EN","US"); int styleD = DateFormat. ( SHORT | MEDIUM | LONG | FULL ) ; int styleT = DateFormat. ( SHORT | MEDIUM | LONG | FULL ) ; DateFormat df = DateFormat.getDateTimeInstance( styleD, styleT, locale ); String s = df.format( da ); vv, dd. mm. yyyy hh:mm:ss ap zzz PJV04

4 java.util Comparable Serializable Date Runnable Cloneable Date Time
java.lang Date Runnable Serializable java.sql Cloneable Timer Task Date TimeZone Calendar java.sql Time Timer Simple TimeZone Gregorian Calendar java.sql TimeStamp PJV04 ALG

5 Třída Formatter Úpravu tisku v PrintStream.printf , Writer.printf a String.format. Detailně viz: java.util.Formatter % [ arg_index$ ] [ flags ] [ width ] [ .precision ] conversion conversion: t čas UTC long: tS, ts ~ SS, ssssssssss – sekunda od tM ~ minuta 00-59 tH ~ hodina td ~ dd - den 01-31 tm ~ mm - měsíc tY, ty ~ YYYY , yy tZ, tz ~ zkratka zóny, ofset zóny: HHMM Příklad: long ctim = System.currentTimeInMillis( ) ; System.out.printf(" %tY %n", ctim); PJV04

6 Abstraktní třída TimeZone
a konkrétní SimpleTimeZone definuje časové pásmo, jeho identifikátor, odchylku od GMT v msec i parametry pro případné užívání letního času ( DST – Daylight Savings Time ). String[ ] ids = TimeZone.getAvailableIDs( … ) – získání id pásem TimeZone tz = TimeZone.getTimeZone( "America/Los_Angeles" ); TimeZone.getDefault( ) - vrátí řetěz "Europe/Prague" PJV04

7 java.time Temporal Clock Duration Instant LocalDate Japanese Date
Amount Temporal Accessor Temporal Adjuster java.time.chrono Duration Temporal ChronoLocal Date Instant LocalDate Japanese Date Minguo Date ThaiBuddhist Date PJV04

8 java.time.chrono Comparable Era Chronology Iso Chronology Iso Era
java.lang java.time.temporal java.time.temporal Comparable Temporal Accessor Temporal Adjuster Chronology Era Iso Chronology Iso Era Hirjah Chronology Hirjah Date Hirjah Era Japanese Chronology Japanese Date Japanese Era Minguo Chronology Minguo Date Minguo Era ThaiBuddhist Chronology ThaiBuddhist Date ThaiBuddhist Era PJV04


Stáhnout ppt "Čas API pojednavá čas obecným, globálním způsobem."

Podobné prezentace


Reklamy Google