Java SimpleDateFormat – Formát data Java

Photo of author

By etechblogcz

Úvod do problematiky

Třída SimpleDateFormat v Javě je klíčovým nástrojem pro úpravu a interpretaci datumů a časů. Umožňuje vývojářům flexibilně manipulovat s datovými a časovými údaji pomocí rozličných formátovacích vzorů, které lze přizpůsobit konkrétním požadavkům aplikací. Tato třída, součást balíčku java.text, je základním stavebním kamenem pro práci s daty a časy v Javě.

Proces formátování datumu

K formátování data se využívá metoda format(), která je součástí třídy SimpleDateFormat. Tato metoda přijímá jako vstup objekt typu Date nebo Calendar a generuje textový řetězec s datem ve specifikovaném formátu. Vzor formátu, který je předán metodě, určuje, jakým způsobem má být datum naformátováno. Níže jsou uvedeny některé z nejběžnějších vzorů:

  • yyyy: Rok vyjádřený čtyřmi číslicemi
  • MM: Měsíc v roce, zobrazený dvěma číslicemi (od 01 do 12)
  • dd: Den v měsíci, vyjádřený dvěma číslicemi (od 01 do 31)
  • HH: Hodina, zobrazena dvěma číslicemi v 24hodinovém formátu (od 00 do 23)
  • mm: Minuta, vyjádřena dvěma číslicemi (od 00 do 59)
  • ss: Sekunda, zobrazena dvěma číslicemi (od 00 do 59)

Příklad formátování data v praxi


import java.text.SimpleDateFormat;
import java.util.Date;

public class FormatDateExample {
    public static void main(String[] args) {
        // Získání aktuálního data
        Date date = new Date();

        // Definování formátu datumu
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

        // Formátování data
        String formattedDate = sdf.format(date);

        // Výpis naformátovaného data
        System.out.println(formattedDate);
    }
}

Analýza datumu

Pro transformaci textového řetězce obsahujícího datum do objektu typu Date se používá metoda parse() třídy SimpleDateFormat. Tato metoda vyžaduje, aby formát textového řetězce odpovídal vzoru formátu, který je definován v instanci SimpleDateFormat.

Příklad analýzy datumu


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ParseDateExample {
    public static void main(String[] args) throws ParseException {
        // Textový řetězec s datem
        String dateString = "10/12/2023";

        // Vytvoření SimpleDateFormat s odpovídajícím formátem
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

        // Analýza datumu
        Date date = sdf.parse(dateString);

        // Výpis analyzovaného data
        System.out.println(date);
    }
}

Rozšířené možnosti formátování

SimpleDateFormat nabízí bohatou škálu možností formátování, které umožňují uživateli detailně specifikovat výstupní formát datumu a času. Tyto možnosti zahrnují:

  • 12/24hodinový formát: Umožňuje specifikovat, zda se má hodina zobrazovat ve 12hodinovém formátu (použitím „h“) nebo 24hodinovém formátu (použitím „H“).
  • Časové pásmo: Umožňuje zahrnout informace o časovém pásmu do výstupu, například pomocí „Z“ pro časové pásmo UTC nebo „z“ pro místní časové pásmo.
  • AM/PM: Umožňuje zahrnout indikátor AM/PM pro 12hodinový formát pomocí „a“ nebo „A“.
  • Oddělovače: Umožňuje flexibilní použití oddělovačů mezi různými částmi data, jako jsou lomítka „/“, pomlčky „-“ nebo mezery.

Příklad přizpůsobeného formátování


import java.text.SimpleDateFormat;
import java.util.Date;

public class CustomFormattingExample {
    public static void main(String[] args) {
        // Získání aktuálního data
        Date date = new Date();

        // Definování vlastního formátu
        SimpleDateFormat sdf = new SimpleDateFormat("h:mm a, dd/MM/yyyy (z)");

        // Formátování data
        String formattedDate = sdf.format(date);

        // Výpis naformátovaného data
        System.out.println(formattedDate);
    }
}

Závěrečné shrnutí

SimpleDateFormat v Javě je mocný nástroj pro flexibilní formátování a analýzu datumu a času v aplikacích. Jeho schopnosti přizpůsobení formátu usnadňují práci s datovými a časovými údaji v různých formátech. Důkladné porozumění a správné používání SimpleDateFormat je klíčové pro efektivní práci s datem a časem v Javě.

Často kladené otázky

1. Co je to Java SimpleDateFormat? Java SimpleDateFormat je třída v Javě, která umožňuje formátování a analýzu datumu a času.
2. Jak se používá SimpleDateFormat pro formátování data? Používá se metoda format(), která přijímá Date nebo Calendar objekt a vrací řetězec s naformátovaným datem.
3. Jaké jsou běžné vzory pro formátování v SimpleDateFormat? Mezi běžné vzory patří „yyyy“ pro rok, „MM“ pro měsíc, „dd“ pro den, „HH“ pro hodiny, „mm“ pro minuty a „ss“ pro sekundy.
4. Jak se používá SimpleDateFormat pro analýzu data? Používá se metoda parse(), která přijímá řetězec s datem a vrací objekt typu Date.
5. Lze přizpůsobit formát v SimpleDateFormat? Ano, SimpleDateFormat nabízí mnoho možností pro přizpůsobení, včetně 12/24hodinového formátu, časového pásma a oddělovačů.
6. Jaký je rozdíl mezi Date a Calendar ve vztahu k SimpleDateFormat? Oba reprezentují datum a čas, ale Calendar má pokročilé funkce pro manipulaci s časovými jednotkami.
7. Je SimpleDateFormat thread-safe? Ne, SimpleDateFormat není thread-safe a neměla by se sdílet mezi vlákny.
8. Existují alternativy k SimpleDateFormat? Ano, existuje modernější java.time API, které nabízí typově bezpečnější přístup.