Sign in Join
Wiki copytemporary

ISO 8601/fi

English · Suomi · Русский

ISO 8601 on kansainvälisen standardisoimisjärjestön (ISO) antama päivämäärän ja kellonajan esitystapa. ISO 8601:n mukaan päivämäärä esitetään seuraavasti:

text
 YYYY-MM-DD

Missä YYYY on vuosi gregoriaanisen kalenterin aikana, MM on kuukausi 01 (tammikuu) ja 12 (joulukuu) väliltä ja DD on kuukauden päivä 01 ja 31 väliltä.

Aika tallennetaan:

text
 HH:MM:SS

jossa HH:lla merkitään tunteja keskiyön jälkeen 00:n ja 23:n välillä. MM tarkoittaa minuutteja edellisen tunnin alusta välillä 00 ja 59. SS on sekuntteja edellisen minuutin alusta välillä 00 ja 59.

Yhdistetty päivämäärä ja kellonaika erotetaan kirjaimella "T":

text
 YYYY-MM-DDTHH:MM:SS

Mutta usein välikirjain "T" voidaan korvata välilyönnillä.

Aikavyöhyke voidaan ilmaista merkitsemällä koordinoidun yleisajan (UTC) välinen aikaero seuraavasti:

text
 YYYY-MM-DDTHH:MM:SS±HH:MM

Hyödyllisiä funktioita

Funktio Kuvaus Käännösyksikkö
DayOfTheMonth Antaa TDateTime-arvon kuukauden DateUtils
DayOfTheWeek Antaa TDateTime-arvon viikoittaisen päiväindeksin DateUtils
DayOfTheYear Antaa TDateTime-arvon päivän vuoden alusta DateUtils
FormatDateTime Antaa TDateTime-arvon merkkijonoesityksenä määritellyssä muodossa SysUtils
WeekOf Antaa TDateTime-arvon viikon numeron DateUtils

Esimerkki

pascal
program iso_8601_project;

Uses SysUtils,DateUtils;

// Yhdistetty päivämäärä ja kellonaika UTC esim. 2018-09-26T12:18:47Z
function  ISO8601_Combined_date_and_time_in_UTC(a_DateTime: TDateTime; a_Time_zone:string):string;
begin
  result := FormatDateTime( 'yyyy-mm-dd"T"hh:mm:ss', a_DateTime )+a_Time_zone;
end;

// Viikko esim. 2018-W39
function ISO8601_week(a_DateTime: TDateTime):string;
begin
  result := FormatDateTime('yyyy', a_DateTime)+'-W' +
    (WeekOf( a_DateTime )).ToString  ;
end;

//  Päivämäärä viikkonumerolla: esim. 2018-W39-3
function ISO8601_Date_with_week_number(a_DateTime: TDateTime):string;
begin
  result := FormatDateTime('yyyy', a_DateTime)+'-W' +
    (WeekOf(a_DateTime)).ToString + '-' + (DayOfTheWeek(a_DateTime)).ToString ;
end;

// Päivä vuoden alusta:  esim. 2018-269
function ISO8601_Ordinal_date(a_DateTime: TDateTime):string;
begin
  result := FormatDateTime('yyyy', a_DateTime)+ '-'
     + (DayOfTheYear( a_DateTime )).ToString ;
end;

var
  aDateTime: TDateTime;
begin
  aDateTime := now;
  WriteLn('Date: '+ FormatDateTime( 'yyyy-mm-dd', aDateTime ));  // 2018-09-26
  WriteLn('Combined date and time in UTC: ');
  WriteLn('  ' + ISO8601_Combined_date_and_time_in_UTC(aDateTime,'+00:00')); // 2018-09-26T12:18:47+00:00
  WriteLn('  ' +  FormatDateTime( 'yyyymmdd"T"hhmmss', aDateTime )+'Z'); // 20180926T121847Z
  Writeln('  ' + ISO8601_Combined_date_and_time_in_UTC(aDateTime,'Z')); //2018-09-26T12:18:47Z
  WriteLn('Week: '+ ISO8601_week(aDateTime) ); // 2018-W39
  WriteLn('Date with week number: '+ ISO8601_Date_with_week_number(aDateTime)); // 2018-W39-3
  WriteLn('Ordinal date: '+ ISO8601_Ordinal_date(aDateTime)); // 2018-269
  ReadLn;
end.

From the Free Pascal wiki, page "ISO 8601/fi", as it stood on 2019-07-08 after a change by Djzepi, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 2, last changed by WikiArchive .

Edited on wiki.freepascal.org by 2 people, 2018–2019

From the official wiki's backup of 26 May 2024: who edited this page there, and when. Edits made there after that date were not recorded, and the earlier versions are not shown here; the main page says why.

WhenWhoWhat changed
DjzepiCreated page
FTurtleFTurtle moved page ISO 8061/fi to ISO 8601/fi: Standard is "ISO 8601" (minor)
Djzepi

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.