tiso8601.pp 815 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. { %OPT=-Mobjfpc }
  2. program tiso8601;
  3. uses
  4. SysUtils, DateUtils;
  5. const
  6. sd6 = '2021-05-22T13:57:49.191021Z';
  7. sd3 = '2021-05-22T13:57:49.191Z';
  8. sd2 = '2021-05-22T13:57:49.19Z';
  9. sd1 = '2021-05-22T13:57:49.1Z';
  10. sc6 = '2021-05-22T13:57:49,191021Z';
  11. sc3 = '2021-05-22T13:57:49,191Z';
  12. sc2 = '2021-05-22T13:57:49,19Z';
  13. sc1 = '2021-05-22T13:57:49,1Z';
  14. var
  15. dt1, dt2, dt3, dt6: TDateTime;
  16. hasErrors : boolean;
  17. procedure Test(s: String);
  18. var
  19. dt: TDateTime;
  20. begin
  21. Write(s:30, ' ---> ');
  22. try
  23. dt := ISO8601ToDate(s, true);
  24. WriteLn(dt:0:15);
  25. except
  26. WriteLn('ERROR');
  27. hasErrors:=True;
  28. end;
  29. end;
  30. begin
  31. HasErrors:=False;
  32. Test(sd1);
  33. Test(sd2);
  34. Test(sd3);
  35. Test(sd6);
  36. Test(sc1);
  37. Test(sc2);
  38. Test(sc3);
  39. Test(sc6);
  40. Halt(Ord(HasErrors));
  41. end.