Date method of as.POSIXct does not respect tz

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Date method of as.POSIXct does not respect tz

Roland Fuß
R 3.5.0

Is it intended that the Date method of as.POSIXct does not respect the
tz parameter? I suggest changing as.POSIXct.Date to this:

function (x, tz = "", ...)
   .POSIXct(unclass(x) * 86400, tz = tz)

Currently, the best workaround seems to be using the character method if
one doesn't want the default timezone (which is often an annoying DST
timezone).

This came up on Stack Overflow: https://stackoverflow.com/q/50373340/1412059

--
Roland

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Date method of as.POSIXct does not respect tz

Martin Maechler
>>>>> Roland Fuß
>>>>>     on Wed, 16 May 2018 17:21:07 +0200 writes:

    > R 3.5.0 Is it intended that the Date method of as.POSIXct
    > does not respect the tz parameter? I suggest changing
    > as.POSIXct.Date

which is

     function (x, ...) .POSIXct(unclass(x) * 86400)

    > to this:

    function (x, tz = "", ...)
         .POSIXct(unclass(x) * 86400, tz = tz)

or rather just forward the '...', i.e., use

    function (x, ...) .POSIXct(unclass(x) * 86400, ...)

??

    > Currently, the best workaround seems to be using the
    > character method if one doesn't want the default timezone
    > (which is often an annoying DST timezone).

    > This came up on Stack Overflow:
    > https://stackoverflow.com/q/50373340/1412059

    > --
    > Roland

Thank you Roland for your notice (and the help on SO).

Best,
Martin

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Reply | Threaded
Open this post in threaded view
|

Re: Date method of as.POSIXct does not respect tz

Roland Fuß

Am 17.05.2018 um 19:55 schrieb Martin Maechler:

>>>>>> Roland Fuß
>>>>>>     on Wed, 16 May 2018 17:21:07 +0200 writes:
>
>     > R 3.5.0 Is it intended that the Date method of as.POSIXct
>     > does not respect the tz parameter? I suggest changing
>     > as.POSIXct.Date
>
> which is
>
>      function (x, ...) .POSIXct(unclass(x) * 86400)
>
>     > to this:
>
>     function (x, tz = "", ...)
>          .POSIXct(unclass(x) * 86400, tz = tz)
>
> or rather just forward the '...', i.e., use
>
>     function (x, ...) .POSIXct(unclass(x) * 86400, ...)
>
> ??

Then .POSIXct should gain the ellipses as an argument if you don't want
to break code that relies on as.POSIXct.Date accepting superfluous
arguments.

Btw. I think it's a bit unfortunate that as.POSIXct and as.POSIXlt don't
throw an error when passed an invalid timezone string. But that would be
more difficult to change.

>
>     > Currently, the best workaround seems to be using the
>     > character method if one doesn't want the default timezone
>     > (which is often an annoying DST timezone).
>
>     > This came up on Stack Overflow:
>     > https://stackoverflow.com/q/50373340/1412059
>
>     > --
>     > Roland
>
> Thank you Roland for your notice (and the help on SO).

Thank you and the rest of R-core for maintaining and improving one of my
work tools and my favorite programming language!

>
> Best,
> Martin
>

--
Roland

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel