Thread: Why not ISO 8601 format for date values rendered into JSON?

Why not ISO 8601 format for date values rendered into JSON?

From
Tom Lane
Date:
I was just going over the release notes, and noticed the bit about
timestamp and timestamptz now being rendered in a fixed ISO-8601-compliant
format rather than whatever random DateStyle is in use.  That's fine,
but I wonder why the same approach wasn't applied to type date?

regression=# set datestyle to postgres;
SET

regression=# select row_to_json(row(now()));               row_to_json                
-------------------------------------------{"f1":"2014-08-17T20:34:54.424237-04:00"}
(1 row)

regression=# select row_to_json(row(current_date));    row_to_json     
---------------------{"f1":"08-17-2014"}
(1 row)

Doesn't seem real consistent ...
        regards, tom lane



Re: Why not ISO 8601 format for date values rendered into JSON?

From
Andrew Dunstan
Date:
On 08/17/2014 08:42 PM, Tom Lane wrote:
> I was just going over the release notes, and noticed the bit about
> timestamp and timestamptz now being rendered in a fixed ISO-8601-compliant
> format rather than whatever random DateStyle is in use.  That's fine,
> but I wonder why the same approach wasn't applied to type date?
>
> regression=# set datestyle to postgres;
> SET
>
> regression=# select row_to_json(row(now()));
>                  row_to_json
> -------------------------------------------
>   {"f1":"2014-08-17T20:34:54.424237-04:00"}
> (1 row)
>
> regression=# select row_to_json(row(current_date));
>       row_to_json
> ---------------------
>   {"f1":"08-17-2014"}
> (1 row)
>
> Doesn't seem real consistent ...
>
>             


Good point. Probably because I didn't get a complaint about it, which in 
turn is probably because JavaScript's builtin Date class is in fact 
(from our POV) more or less a timestamp(tz) type.

See 
<https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date>

But yes, I agree it should be fixed. Whatever we output should be 
suitable as input for the string-argument constructor of class Date.

cheers

andrew



Re: Why not ISO 8601 format for date values rendered into JSON?

From
Tom Lane
Date:
Andrew Dunstan <andrew@dunslane.net> writes:
> On 08/17/2014 08:42 PM, Tom Lane wrote:
>> I was just going over the release notes, and noticed the bit about
>> timestamp and timestamptz now being rendered in a fixed ISO-8601-compliant
>> format rather than whatever random DateStyle is in use.  That's fine,
>> but I wonder why the same approach wasn't applied to type date?

> But yes, I agree it should be fixed. Whatever we output should be 
> suitable as input for the string-argument constructor of class Date.

OK.  I think I can fix it, if you don't have time.
        regards, tom lane



Re: Why not ISO 8601 format for date values rendered into JSON?

From
Andrew Dunstan
Date:
On 08/17/2014 09:53 PM, Tom Lane wrote:
>
> OK.  I think I can fix it, if you don't have time.
>
>             


[offlist]

Thanks. FYI I am still recovering from treatment for prostate cancer I 
had not long after pgcon ... it's taken more out of me that I expected, 
so time is limited.

cheers

andrew





Re: Why not ISO 8601 format for date values rendered into JSON?

From
Andrew Dunstan
Date:
On 08/17/2014 10:50 PM, Andrew Dunstan wrote:
>
> On 08/17/2014 09:53 PM, Tom Lane wrote:
>>
>> OK.  I think I can fix it, if you don't have time.
>>
>>
>
>
> [offlist]
>
> Thanks. FYI I am still recovering from treatment for prostate cancer I 
> had not long after pgcon ... it's taken more out of me that I 
> expected, so time is limited.
>
>


Darn it. well, I guess everyone knows now.  *sigh*

cheers

andrew