Movatterモバイル変換


[0]ホーム

URL:


Przejdź do zawartości
Wikipediawolna encyklopedia
Szukaj

ISO 8601

Z Wikipedii, wolnej encyklopedii

ISO 8601 – międzynarodowanormaISO określająca sposób zapisu daty i czasu. Obecna wersja (ISO 8601:2004) jest trzecią edycją dokumentu, datowaną na 2004-12-03. Zastępuje ona pierwszą edycję – ISO 8601:1988 – oraz drugą edycję – ISO 8601:2000. Polski odpowiednik to normaPN-EN 28601:2002[1] (poprzednio PN-82/01204 iPN-90/N-01204) wycofana w dniu 2008-05-29 bez zastąpienia. Stosowaniu standardu ISO 8601 w protokołach internetowych poświęcony jestRFC 3339 ↓.

Podstawowa koncepcja tegostandardu polega na ustaleniu momentu wczasie z dokładnością ustaloną przez użytkownika za pomocą odpowiednio sformatowanych ciągów znaków ustawionych w porządku od najbardziej znaczących (rok) do najmniej znaczących (sekundy bądź ich części). Norma określa numeryczny format daty i czasu (bez używania nazw miesięcy, dni tygodnia czy literowych oznaczeń czasu przed lub po południu).

Zapis daty

[edytuj |edytuj kod]

W standardzie ISO 8601 daty mogą być przedstawione na trzy różne sposoby: daty kalendarzowe, daty porządkowe i daty tygodniowe. Standard korzysta zkalendarza gregoriańskiego. Należy zwrócić uwagę, że rok0001 w standardzie ISO 8601 oznacza1 rokn.e., poprzedni –0000 – oznacza rok1 p.n.e., a–0001 to rok2 p.n.e. itd. Dla uniknięcia dwuznaczności rok powinien być zapisywany za pomocą czterech cyfr.

Daty kalendarzowe

[edytuj |edytuj kod]

Data kalendarzowa to data, w której dzień jest liczony kolejno w każdym miesiącu. Np.2 stycznia to data kalendarzowa. W standardzie ISO 8601 data kalendarzowa ma formatYYYY-MM-DD, czyli 2 dzień stycznia w roku 2005 zapisywany jest jako2005-01-02. Można również opuścić separatory, zapisując datę w sposób20050102. Format z separatorami toformat rozszerzony, a bez toformat podstawowy. Standard pozwala na przedstawianie dat z mniejszą precyzją: można zapisać2005-01, co oznacza styczeń roku 2005.

Daty porządkowe

[edytuj |edytuj kod]

Data porządkowa to taka, w której dzień jest przedstawiony jako kolejny w całym roku, za pomocą trzech znaków z wiodącymi zerami. 2 stycznia to002, 1 lutego to032, itd.31 grudnia to365 lub366 wlatach przestępnych. Data porządkowa ma formatYYYY-DDD. 2 stycznia 2005 zapisywany jest jako2005-002, a w formacie podstawowym2005002.

Daty tygodniowe

[edytuj |edytuj kod]

Data tygodniowa to taka, w której dzień jest oznaczany jako kolejny w kolejnymtygodniu roku. Tydzień oznaczany jest dwiema cyframi od01 do52 lub53. Dzień oznaczany jest jedną cyfrą, od1poniedziałek do7niedziela. Format daty tygodniowej toYYYY-Www-D. Np. 2 lutego 2005 to2005-W05-3 lub w zapisie podstawowym2005W053 – trzeci dzień (środa) piątego tygodnia roku 2005.

Pierwszy tydzień roku to taki, w którym są przynajmniej 4 dni stycznia. Inaczej mówiąc, taki, w którym jest pierwszyczwartek stycznia lub dzień4 stycznia. To oznacza, że tydzień01 może zawierać dni z poprzedniego roku, a tydzień53 – dni z następnego roku. Np. 1 stycznia 2005 wypadł w sobotę, więc2004-W53 trwa od 27 grudnia 2004 do 2 stycznia 2005, a2005-W01 zaczyna się 3 stycznia 2005 roku. Data kalendarzowa2005-01-02 to data tygodniowa2004-W53-7.

Zapis czasu

[edytuj |edytuj kod]

Standard używa czasu 24-godzinego. Format podstawowy tohhmmss, a rozszerzony tohh:mm:ss. Można oczywiście użyć mniejszej precyzji:hh:mm,hhmm lubhh.

Można również używać części sekund, minut lub godzin, zaznaczając to znakiem dziesiętnym: kropką lub przecinkiem w zależności od lokalnych ustaleń. Dzielić można tylko najmniej znaczącą część, więc, zapisując np. 14 godzin, 30 i pół minuty, nie umieszczamy sekund:14:30,5.

Północ oznaczana jest zarówno00:00 jak i24:00. Np.24:00 31 grudnia 2004 to ten sam moment co00:00 1 stycznia 2005.

Strefy czasowe

[edytuj |edytuj kod]

Oznaczenia czasuUTC dokonuje się przez umieszczenie literyZ po czasie. Np. godzina 9:30 czasu UTC oznaczana jest09:30Z lub0930Z.

Inne strefy czasowe oznacza się, zaznaczając ich przesunięcie (offset) względem czasu UTC, w formacie±hh:mm,±hhmm lub±hh. Standardowy czas geograficzny w Polsce (zwany zwyczajowoczasem zimowym) jest przesunięty o godzinę do przodu w stosunku do czasu UTC, aczas letni – o dwie godziny. Godzina15:30 w Polsce w zimie zapisywana jest jako15:30+01 i oznacza ten sam czas co14:30Z.

Łączny zapis daty i czasu

[edytuj |edytuj kod]

Łącznie datę i czas w standardzie ISO 8601 zapisuje się, wstawiając literęT między zapis daty i czasu. Powszechnie używany jest zapisYYYY-MM-DDThh:mm:ss±hh:mm, np.2005-01-02T03:01:45+01:00. Dopuszczalne i stosowane jest także rozdzielanie daty od czasu przy pomocy spacji:YYYY-MM-DD hh:mm:ss ±hh:mm[1].

Aktualny czas UTC podany w rozszerzonym wariancie standardu ISO 8601: 2026-02-20T03:38:00Z [Odśwież]

Przykłady użycia

[edytuj |edytuj kod]

Poleceniedate w konsoli systemów z rodzinyUnix:

echo"Format rozszerzony YYYY-MM-DDThh:mm:ssZ"date-u+%Y-%m-%dT%H:%M:%SZecho"Format podstawowy YYYYMMDDThhmmssZ"date-u+%Y%m%dT%H%M%SZecho"Format podstawowy mniejszej precyzji YYYYMMDDThhmm"date-u+%Y%m%dT%H%MZ# date -I[FORMAT], --iso-8601[=FORMAT]  wypisanie daty/czasu w formacie ISO 8601.# FORMAT=„date” dla podania samej daty (tryb domyślny), „hours” (godziny), „minutes”,# „seconds” albo „ns” dla podania daty i czasu z pożądaną dokładnością.date--iso-8601="minutes"

Funkcjadate() wPHP:

<?php$timeoffset=intval(date("Z"));echodate("Y-m-d\TH:i:s\Z",time()-$timeoffset);echo"\n";// PHP 5 lub nowsze:echodate("c");// 2004-02-12T15:19:21+00:00echo"\n";?>

FunkcjaDate#toISOString() wJavaScript:

letdate=newDate('05 October 2011 14:48 UTC')console.log(date.toISOString())// powinno wyświetlić w konsoli 2011-10-05T14:48:00.000Z

Przypisy

[edytuj |edytuj kod]
  1. abPN-EN 28601:2002 - wersja polska [online], sklep.pkn.pl [dostęp 2017-11-23] [zarchiwizowane zadresu 2017-12-15] (pol.).

Linki zewnętrzne

[edytuj |edytuj kod]
Źródło: „https://pl.wikipedia.org/w/index.php?title=ISO_8601&oldid=74002544
Kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp