#1 Yesterday 08:34:23

Mr.Ed
Member
Registered: 2020-04-09
Posts: 4

wrong Iso8601ToDateTime conversion

I get wrong result if dates include time values.

  ShowMessage(DateTimeToIso8601Text(Iso8601ToDateTime('1492-10-12T16:00:00')));
  // results in '1492-10-13T08:00:00'

The fractional time part is always added in Iso8601ToDateTimePUtf8CharVar but should be subtracted if the date is a negative number.

Offline

#2 Yesterday 20:50:40

ab
Administrator
From: France
Registered: 2010-06-21
Posts: 15,409
Website

Re: wrong Iso8601ToDateTime conversion

Values before TDateTime = 0 are just not supported.

Offline

#3 Yesterday 21:13:52

rvk
Member
Registered: 2022-04-14
Posts: 159

Re: wrong Iso8601ToDateTime conversion

ab wrote:

Values before TDateTime = 0 are just not supported.

In that case you might want to add an assert (or other check/exception) for that ?
(That would be the easiest)

Maybe someone can suggest a patch for TDateTime < 0 if needed and accepted.

Offline

Board footer

Powered by FluxBB