Difference between revisions of "ISO 8601/ru"

From Free Pascal wiki
Jump to navigationJump to search
Line 5: Line 5:
 
<span style="color:#FF0000">ENG: '''AT THE MOMENT THIS PAGE IS UNDER TRANSLATION.''' <br /> RUS: '''В НАСТОЯЩИЙ МОМЕНТ СТРАНИЦА НАХОДИТСЯ В ПРОЦЕССЕ ПЕРЕВОДА.'''</span>
 
<span style="color:#FF0000">ENG: '''AT THE MOMENT THIS PAGE IS UNDER TRANSLATION.''' <br /> RUS: '''В НАСТОЯЩИЙ МОМЕНТ СТРАНИЦА НАХОДИТСЯ В ПРОЦЕССЕ ПЕРЕВОДА.'''</span>
 
----
 
----
 +
 +
__TOC__
  
 
ISO 8601 - это стандарт, выпущенный Международной Организацией по Стандартизации (ISO) для даты и времени.
 
ISO 8601 - это стандарт, выпущенный Международной Организацией по Стандартизации (ISO) для даты и времени.

Revision as of 07:35, 11 December 2018

English (en) suomi (fi) русский (ru)



ENG: AT THE MOMENT THIS PAGE IS UNDER TRANSLATION.
RUS: В НАСТОЯЩИЙ МОМЕНТ СТРАНИЦА НАХОДИТСЯ В ПРОЦЕССЕ ПЕРЕВОДА.


ISO 8601 - это стандарт, выпущенный Международной Организацией по Стандартизации (ISO) для даты и времени. Согласно ISO 8601, дата выглядит следующим образом:

 YYYY-MM-DD

, где YYYY - год по Григорианскому календарю, MM - месяц между 01 (январь) и 12 (декабрь), а DD - день месяца между 01 и 31.

Время записывается [как]:

 HH:MM:SS

, где HH являются часами после полуночи между 00 и 23. MM - минуты с начала предыдущего часа между 00 и 59. SS - секунды с начала предыдущей минуты между 00 и 59.

Объединенные дата и время должны быть помечены буквой "Т":

 YYYY-MM-DDTHH:MM:SS

Но часто промежуточную букву "T" можно заменить пробелом.

Часовой пояс можно указать, отметив разницу во времени между всемирным координированным временем (UTC) следующим образом:

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


Useful functions

Function Description Unit
DayOfTheMonth Gives day of month index for a TDateTime value DateUtils
DayOfTheWeek Gives day of week index for a TDateTime value DateUtils
DayOfTheYear Gives the day of the year for a TDateTime value DateUtils
FormatDateTime Gives a string representation of a TDateTime value with a given format SysUtils
WeekOf Gives the week of the year for a TDateTime value DateUtils

Example

program iso_8601_project;

Uses SysUtils,DateUtils;


// Combined date and time in UTC  e.g // 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;

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

//  Date with week number: e.g. 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;

// Ordinal date:  e.g. 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.