[Rd] strptime mysteriously adds a day - 0S-specific: Linux and (PR#1468)
gb@stat.umu.se
gb@stat.umu.se
Thu, 18 Apr 2002 15:30:12 +0200 (MET DST)
On Thu, 18 Apr 2002 ripley@stats.ox.ac.uk wrote:
> On Thu, 18 Apr 2002, Martin Maechler wrote:
>
> > >>>>> "Jason" == Jason Turner <jasont@indigoindustrial.co.nz> writes:
> >
> > Jason> strptime() mysteriously adds a day to a date, unless the year
> > Jason> is specified. Tested on:
> > Jason> Linux (RedHat 6.0) - R version 1.4.1 and R-devel.
> > Jason> Windows - R version 1.4.1
> >
> > Jason> Bug isn't found on OpenBSD, R version 1.4.1.
> >
> > I confirm the bug (R-devel, Redhat 7.1)
> > To reproduce, it's sufficient to work with
> > "%d %B" or "%d %b" .
> >
> > What happens is that January and February work okay, and all
> > months from March produce the problem,
> >
> > e.g.
> >
> > > strptime("28 Feb",format="%d %b")# ok
> > [1] "2002-02-28"
> > > strptime("19 March",format="%d %B")# wrong
> > [1] "2002-03-20"
>
> The issue is that an unspecified year is assumed *by the IS* to be 1900, a
> leap year.
Sorry, 1900 is not a leap year. Maybe glibc doesn't know that? :-)
However, 'cal 1900' (on Linux) gives a correct answer.
Göran
> I'm not sure why glibc does this when the tm_year field is not
> being set, but it confidently says this is day 101 of the year, and that's
> the result you get.
>
> The only portable workaround is to give the year: there is (at least in
> R-devel) a warning in the help file about this.
>
>
--
Göran Broström tel: +46 90 786 5223
professor fax: +46 90 786 6614
Department of Statistics http://www.stat.umu.se/egna/gb/
Umeå University
SE-90187 Umeå, Sweden e-mail: gb@stat.umu.se
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._