This is documented behavior. From
format: A character string. If not specified, it will try ‘”%Y-%m-%d”‘ then ‘”%Y/%m/%d”‘ on the first non-‘NA’ element, and give an error if neither works.
as.Date("01 Jan 2000") yields an error because the format isn’t one of the two listed above.
as.Date("01/01/2000") yields an incorrect answer because the date isn’t in one of the two formats listed above.
I take “standard unambiguous” to mean “ISO-8601” (even though
as.Date isn’t that strict, as “%m/%d/%Y” isn’t ISO-8601).
If you receive this error, the solution is to specify the format your date (or datetimes) are in, using the formats described in the Details section in
Make sure that the order of the conversion specification as well as any separators correspond exactly with the format of your input string. Also, be sure to use particular care if your data contain day/month names and/or abbreviations, as the conversion will depend on your locale (see the examples in
?strptime and read
?LC_TIME; see also
as.Date return unexpected