Difference between revisions of "ISO 8601/ru"

From Lazarus wiki
Jump to navigationJump to search
(Created page with "{{ISO 8601}} ---- <span style="color:#FF0000">ENG: '''AT THE MOMENT THIS PAGE IS UNDER TRANSLATION.''' <br /> RUS: '''В НАСТОЯЩИЙ МОМЕНТ СТРАНИЦА Н...")
 
 
(6 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
{{ISO 8601}}
 
{{ISO 8601}}
  
 +
__TOC__
  
----
+
ISO 8601 - это стандарт, выпущенный Международной Организацией по Стандартизации (ISO) для даты и времени.
<span style="color:#FF0000">ENG: '''AT THE MOMENT THIS PAGE IS UNDER TRANSLATION.''' <br /> RUS: '''В НАСТОЯЩИЙ МОМЕНТ СТРАНИЦА НАХОДИТСЯ В ПРОЦЕССЕ ПЕРЕВОДА.'''</span>
+
Согласно ISO 8601, дата выглядит следующим образом:
----
 
 
 
ISO 8601 is a standard issued by the International Organization for Standardization (ISO) for the date and time.
 
According to ISO 8601, the date is as follows:
 
  
 
   YYYY-MM-DD
 
   YYYY-MM-DD
  
where YYYY is a year in the Gregorian calendar , MM is a month between 01 (January) and 12 (December), and DD is the day of the month between 01 and 31.  
+
, где YYYY - год по Григорианскому календарю, MM - месяц между 01 (январь) и 12 (декабрь), а DD - день месяца между 01 и 31.
  
The time is recorded:
+
Время записывается [как]:
  
 
   HH:MM:SS
 
   HH:MM:SS
  
where HH has hours after midnight between 00 and 23. The MM is minutes from the beginning of the previous hour between 00 and 59. The SS is seconds from the beginning of the previous minute between 00 and 59.
+
, где HH являются часами после полуночи между 00 и 23. MM - минуты с начала предыдущего часа между 00 и 59. SS - секунды с начала предыдущей минуты между 00 и 59.
 
 
The combined date and time should be marked with the letter "T":
 
  
  YYYY-MM-DDTHH:MM:SS
+
Объединенные дата и время должны быть помечены буквой "Т":
  
But often the intermediate letter "T" can be replaced by a space.
+
  YYYY-MM-DD<b>T</b>HH:MM:SS
  
 +
Но часто промежуточную букву "T" можно заменить пробелом.
  
The time zone can be indicated by marking the time difference between the coordinated universal time (UTC) as follows:
+
Часовой пояс можно указать, отметив разницу во времени между всемирным координированным временем (UTC) следующим образом:
  
 
   YYYY-MM-DDTHH:MM:SS±HH:MM
 
   YYYY-MM-DDTHH:MM:SS±HH:MM
  
  
== Useful functions ==
+
== Полезные функции ==
  
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
Line 37: Line 33:
 
! Function !! Description !! Unit
 
! Function !! Description !! Unit
 
|-
 
|-
| DayOfTheMonth || Gives day of month index for a [[TDateTime]] value || DateUtils
+
| DayOfTheMonth || Возвращает индекс дня месяца для значения [[TDateTime]]|| DateUtils
 
|-
 
|-
| DayOfTheWeek || Gives day of week index for a TDateTime value || DateUtils
+
| DayOfTheWeek || Возвращает индекс дня недели для значения TDateTime || DateUtils
 
|-
 
|-
| DayOfTheYear ||Gives the day of the year for a TDateTime value || DateUtils
+
| DayOfTheYear ||Возвращает день года для значения TDateTime || DateUtils
 
|-  
 
|-  
| FormatDateTime || Gives a string representation of a TDateTime value with a given format || SysUtils
+
| FormatDateTime || Возвращает строковое представление значения TDateTime с заданным форматом || SysUtils
 
|-
 
|-
| WeekOf ||Gives the week of the year for a TDateTime value || DateUtils
+
| WeekOf ||Возвращает неделю года для значения TDateTime || DateUtils
 
|}
 
|}
  
== Example ==
+
== Примеры ==
  
<source>
+
<syntaxhighlight lang="pascal">
 
program iso_8601_project;
 
program iso_8601_project;
  
Line 56: Line 52:
  
  
// Combined date and time in UTC e.g // 2018-09-26T12:18:47Z
+
// Объединение даты и времени в формате UTC, напр. // 2018-09-26T12:18:47Z
 
function  ISO8601_Combined_date_and_time_in_UTC(a_DateTime: TDateTime; a_Time_zone:string):string;
 
function  ISO8601_Combined_date_and_time_in_UTC(a_DateTime: TDateTime; a_Time_zone:string):string;
 
begin
 
begin
Line 62: Line 58:
 
end;
 
end;
  
// Week: e.g. 2018-W39
+
// Неделя: напр. 2018-W39
 
function ISO8601_week(a_DateTime: TDateTime):string;
 
function ISO8601_week(a_DateTime: TDateTime):string;
 
begin
 
begin
Line 69: Line 65:
 
end;
 
end;
  
//  Date with week number: e.g. 2018-W39-3
+
//  Дата с номером недели: напр.2018-W39-3
 
function ISO8601_Date_with_week_number(a_DateTime: TDateTime):string;
 
function ISO8601_Date_with_week_number(a_DateTime: TDateTime):string;
 
begin
 
begin
Line 76: Line 72:
 
end;
 
end;
  
// Ordinal date: e.g. 2018-269
+
// Порядковый номер дня в году: напр. 2018-269
 
function ISO8601_Ordinal_date(a_DateTime: TDateTime):string;
 
function ISO8601_Ordinal_date(a_DateTime: TDateTime):string;
 
begin
 
begin
Line 98: Line 94:
 
end.
 
end.
  
</source>
+
</syntaxhighlight>

Latest revision as of 17:29, 8 July 2019

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

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


Полезные функции

Function Description Unit
DayOfTheMonth Возвращает индекс дня месяца для значения TDateTime DateUtils
DayOfTheWeek Возвращает индекс дня недели для значения TDateTime DateUtils
DayOfTheYear Возвращает день года для значения TDateTime DateUtils
FormatDateTime Возвращает строковое представление значения TDateTime с заданным форматом SysUtils
WeekOf Возвращает неделю года для значения TDateTime DateUtils

Примеры

program iso_8601_project;

Uses SysUtils,DateUtils;


// Объединение даты и времени в формате UTC, напр. // 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;

// Неделя: напр. 2018-W39
function ISO8601_week(a_DateTime: TDateTime):string;
begin
  result := FormatDateTime('yyyy', a_DateTime)+'-W' +
    (WeekOf( a_DateTime )).ToString  ;
end;

//  Дата с номером недели: напр.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;

// Порядковый номер дня в году: напр. 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.