whats new ¦  programming tips ¦  indy articles ¦  intraweb articles ¦  informations ¦  links ¦  interviews
 misc ¦  tutorials ¦  Add&Win Game

Tips (1541)

Database (90)
Files (137)
Forms (107)
Graphic (114)
IDE (21)
Indy (5)
Internet / LAN (130)
IntraWeb (0)
Math (76)
Misc (126)
Multimedia (45)
Objects/
ActiveX (51)

OpenTools API (3)
Printing (35)
Strings (83)
System (266)
VCL (242)

Top15

Tips sort by
component


Search Tip

Add new Tip

Add&Win Game

Advertising

48 Visitors Online


 
...convert RFC1123 to a TDateTime format?
Autor: w3seek
Homepage: http://www.w3seek.de
[ Print tip ]  

Tip Rating (3):  
     


function RFC1123ToDateTime(Date: string): TDateTime;
var
  
day, month, year: Integer;
  strMonth: string;
  Hour, Minute, Second: Integer;
begin
  try
    
day      := StrToInt(Copy(Date, 6, 2));
    strMonth := Copy(Date, 9, 3);
    if strMonth = 'Jan' then month := 1 
    else if strMonth = 'Feb' then month := 2 
    else if strMonth = 'Mar' then month := 3 
    else if strMonth = 'Apr' then month := 4 
    else if strMonth = 'May' then month := 5 
    else if strMonth = 'Jun' then month := 6 
    else if strMonth = 'Jul' then month := 7 
    else if strMonth = 'Aug' then month := 8 
    else if strMonth = 'Sep' then month := 9 
    else if strMonth = 'Oct' then month := 10 
    else if strMonth = 'Nov' then month := 11 
    else if strMonth = 'Dec' then month := 12;
    year   := StrToInt(Copy(Date, 13, 4));
    hour   := StrToInt(Copy(Date, 18, 2));
    minute := StrToInt(Copy(Date, 21, 2));
    second := StrToInt(Copy(Date, 24, 2));
    Result := 0;
    Result := EncodeTime(hour, minute, second, 0);
    Result := Result + EncodeDate(year, month, day);
  except
    
Result := now;
  end;
end;


function DateTimeToRFC1123(aDate: TDateTime): string;
const
  
StrWeekDay: string = 'MonTueWedThuFriSatSun';
  StrMonth: string = 'JanFebMarAprMayJunJulAugSepOctNovDec';
var
  
Year, Month, Day: Word;
  Hour, Min, Sec, MSec: Word;
  DayOfWeek: Word;
begin
  
DecodeDate(aDate, Year, Month, Day);
  DecodeTime(aDate, Hour, Min, Sec, MSec);
  DayOfWeek := ((Trunc(aDate) - 2) mod 7);
  Result    := Copy(StrWeekDay, 1 + DayOfWeek * 3, 3) + ', ' +
    Format('%2.2d %s %4.4d %2.2d:%2.2d:%2.2d',
    [Day, Copy(StrMonth, 1 + 3 * (Month - 1), 3),
    Year, Hour, Min, Sec]);
end;


 

Rate this tip:

poor
very good


Copyright © by SwissDelphiCenter.ch
All trademarks are the sole property of their respective owners