RFC 1123 Time Format/fi

From Lazarus wiki
Jump to navigationJump to search

English (en) suomi (fi)

RFC 1123 Aika formaatti

Funktio function RFC1123TimeFormat(aDateTime:TDateTime; isLocalTime:boolean):string; luo ja näyttää ajan kansainvälisessä RFC 1123 formaatissa:

 DAY, DD MON YYYY hh:mm:ss GMT

esim.:

 Sun, 21 Oct 2018 12:16:24 GMT


Päivä on muotoa DAY, kolmikirjaiminen englanninkielinen lyhenne jota seuraa pilkku. Päivämäärä on muotoaa DD-MON-YYYY (päivä, kuukausi ja vuosi), jossa kuukausi kolmikirjaiminen englanninkielinen lyhenne.

Päivämäärä ja kellonaika näkyvät samalla rivillä, päivämäärää, jota seuraa aika. Päivämäärän ja tunnin välillä on välilyönti ja aika on muodossa hh:mm:ss (tunnit, minuutit ja sekunnit)

Aika on Coordinated Universal Time (UTC), vaikka merkintä voi olla valinnaisesti Greenwichin aika (GMT)

Ohjelma RFC1123_TimeFormat

program RFC1123_TimeFormat;

uses
  SysUtils, DateUtils;

function RFC1123TimeFormat(aDateTime:TDateTime; isLocalTime:boolean):string;
const
  ShortDayNamesEnglish :array[1..7] of string =
    ('Sun', 'Mon','Tue', 'Wed', 'Thu', 'Fri', 'Sat');
  ShortMonthNamesEnglish :array[1..12] of string = ('Jan', 'Feb','Mar', 'Apr',
     'May','Jun','Jul','Aug', 'Sep','Oct','Nov','Dec');
var
   day,month : string;
   someDateTime:TDateTime;
begin
  if isLocalTime then someDateTime := LocalTimeToUniversal(aDateTime)
    else  someDateTime := aDateTime;
  day := ShortDayNamesEnglish[DayOfWeek(someDateTime)];
  month := ShortMonthNamesEnglish[MonthOf(someDateTime)] ;
  result := day+', '+FormatDateTime('dd', someDateTime)+' '+
    month+' '+FormatDateTime('yyyy hh:nn:ss', someDateTime)+' GMT';
end;


var
  someDate: TDateTime;
begin
  someDate := EncodeDate(2018, 10, 23);
  WriteLn(RFC1123TimeFormat(now,true));
  WriteLn(RFC1123TimeFormat(someDate,false));
  ReadLn;
end.

Käännösyksikön eli unitin DateUtils funktio LocalTimeToUniversal muuttaa paikallisen ajan UTC aikaan

  function LocalTimeToUniversal( LT: TDateTime ):TDateTime;

Unit SysUtils funktio FormatDateTime tarjoaa monipuolisen TDateTime-arvon muotoilun merkkijonoksi. Muotoilu on määritellään Formatting merkkijonolla.

  function FormatDateTime ( const Formatting : string; DateTime : TDateTime ) : string;

Unit SysUtils function EncodeDate rakentaa vuodesta, kuukaudesta ja päivästä TDateTime varvon.

  function EncodeDate(Year, Month, Day :word): TDateTime;

Katso myös