Konwerter Formatu Daty Online
Konwertuj między składniami formatowania dat: strftime, Moment.js, ICU, Go, PHP, Java.
Reference table
| Element | strftime | Moment | ICU | Go |
|---|---|---|---|---|
| 4-digit year | %Y | YYYY | yyyy | 2006 |
| 2-digit year | %y | YY | yy | 06 |
| Month (01-12) | %m | MM | MM | 01 |
| Full month name | %B | MMMM | MMMM | January |
| Abbreviated month name | %b | MMM | MMM | Jan |
| Day of month (01-31) | %d | DD | dd | 02 |
| Day of month, no leading zero | %e | D | d | 2 |
| Hour 24h (00-23) | %H | HH | HH | 15 |
| Hour 12h (01-12) | %I | hh | hh | 03 |
| Minute (00-59) | %M | mm | mm | 04 |
| Second (00-59) | %S | ss | ss | 05 |
| AM/PM | %p | A | a | PM |
| Timezone abbreviation | %Z | z | zzz | MST |
| Timezone offset | %z | ZZ | Z | -0700 |
| Full weekday name | %A | dddd | EEEE | Monday |
| Abbreviated weekday name | %a | ddd | EEE | Mon |
| Day of year (001-366) | %j | DDDD | D | __2 |
Do czego służy
Konwerter formatów dat dla programistów
Wszystkie języki
Obsługuje strftime, Moment.js, Day.js, ICU, Go, PHP, Java, .NET, Ruby.
100% prywatne
Konwersja odbywa się w Twojej przeglądarce. Żadne dane nie są wysyłane na jakikolwiek serwer.
Prawdziwy podgląd
Sprawdź, jak data zostanie wyrenderowana z Twoim formatem w każdym języku.
Natychmiast
Konwersja w czasie rzeczywistym podczas pisania. Bez rejestracji, bez czekania.
Jak to działa
Trzy kroki, żadnych komplikacji
Wpisz token formatu daty
Wpisz format daty, np. %Y-%m-%d (strftime) lub YYYY-MM-DD (Moment.js). Narzędzie automatycznie wykrywa dialekt.
Natychmiastowa konwersja
Otrzymaj równoważny format we wszystkich obsługiwanych dialektach: strftime, Moment.js, ICU, Go, PHP, Java, .NET.
Podgląd z prawdziwą datą
Zobacz, jak bieżąca data wyglądałaby z tym formatem w każdym języku.
FAQ
Masz pytania?
strftime ('string format time') to funkcja ze standardowej biblioteki C zdefiniowana w standardzie C89/ANSI C. Formatuje strukturę tm (czas) jako ciąg tekstowy przy użyciu tokenów takich jak %Y (rok 4-cyfrowy), %m (miesiąc), %d (dzień), %H (godzina 24h), %M (minuty), %S (sekundy). Jest źródłem niemal wszystkich systemów formatowania dat: Python, Ruby, PHP (date() używa innych tokenów, ale strftime() tych samych), bash i wiele innych.
Moment.js spopularyzował inną notację: YYYY (rok 4-cyfrowy), MM (miesiąc), DD (dzień), HH (godzina 24h), mm (minuty), ss (sekundy). Kluczowa różnica: wielkość liter ma znaczenie (MM to miesiąc, mm to minuty). Ta notacja została przyjęta przez Day.js, date-fns, Luxon i większość nowoczesnych bibliotek JavaScript. Propozycja JavaScript Temporal (TC39) używa notacji ICU.
ICU (International Components for Unicode) definiuje standard CLDR dla formatów dat. Używa tokenów takich jak yyyy (rok), MM (miesiąc), dd (dzień), HH (godzina). To system stosowany w Java (java.time.format.DateTimeFormatter), Swift (DateFormatter), Kotlin, Android i propozycji JavaScript Temporal. Zaletą ICU jest obsługa lokalizacji: wzorzec 'd MMMM yyyy' daje '7 April 2026' po angielsku i '7 kwietnia 2026' po polsku.
Go (Golang) używa konkretnej daty referencyjnej jako szablonu: 2 stycznia 2006 roku o godzinie 15:04:05 w poniedziałek (co odpowiada 01/02 03:04:05PM '06 -0700 MST, łatwej do zapamiętania sekwencji). Zamiast abstrakcyjnych tokenów, opisujesz format pokazując, jak wyglądałaby ta konkretna data: '2006-01-02' dla rok-miesiąc-dzień, '15:04:05' dla pełnego czasu. To podejście jest unikalne i zdaniem twórców bardziej intuicyjne, choć początkowo mylące.
Data ISO 8601: strftime: %Y-%m-%d, Moment.js: YYYY-MM-DD, Go: 2006-01-02, Java: yyyy-MM-dd. Pełna data i czas: strftime: %Y-%m-%dT%H:%M:%S, Moment.js: YYYY-MM-DDTHH:mm:ss, Go: 2006-01-02T15:04:05, Java: yyyy-MM-dd'T'HH:mm:ss. Format europejski: strftime: %d/%m/%Y, Moment.js: DD/MM/YYYY, Go: 02/01/2006, Java: dd/MM/yyyy.
Historia formatowania dat w programowaniu, ISO 8601, formatowanie z uwzględnieniem lokalizacji i obsługa stref czasowych
Standaryzacja formatów dat w informatyce historycznie była problematyczna. Funkcja strftime została wprowadzona w standardowej bibliotece C (ANSI C, 1989), ale jej korzenie sięgają systemów AT&T Unix z lat 70. Przed standaryzacją każdy system i język używał własnej notacji, powodując poważne niezgodności. Standard ISO 8601 (pierwsze wydanie 1988, zrewidowany w 2004 i 2019) ustanowił YYYY-MM-DD jako uniwersalny format dla wymiany danych, przyjęty przez XML, JSON, HTTP (dla dat ciasteczek i nagłówków) i większość nowoczesnych API.
Lokalizacja dat dodaje kolejną warstwę złożoności. Kolejność dzień/miesiąc/rok różni się w zależności od kraju: DD/MM/YYYY w Europie i Ameryce Łacińskiej, MM/DD/YYYY w Stanach Zjednoczonych (powodując częste pomyłki: 01/02/2026 to 1 lutego w Europie, ale 2 stycznia w USA). Systemy ICU/CLDR obsługują te różnice automatycznie: ta sama funkcja formatu daje '7 April 2026' po angielsku, '7 de abril de 2026' po hiszpańsku, '7. April 2026' po niemiecku lub '2026年4月7日' po japońsku, bez konieczności ręcznego zarządzania różnicami.
Strefy czasowe są najbardziej złożoną częścią obsługi dat w oprogramowaniu. Baza danych stref czasowych IANA (zwana też Olson Database lub tzdata) utrzymuje historyczny i aktualny rejestr wszystkich stref czasowych na świecie, w tym historyczne zmiany czasu letniego DST. Wiele słynnych błędów oprogramowania dotyczyło dat: błąd Y2K (rok 2000), błąd roku 2038 w 32-bitowych systemach Unix (gdy znacznik czasu Unix przepełni się 19 stycznia 2038) i błędy DST wpływające na kalendarze i systemy rezerwacji dwa razy w roku.