as.Date with two-digit years

D. Studer picture D. Studer · Oct 10, 2017 · Viewed 7.2k times · Source

If I convert the date 10.10.61 (DD.MM.YY) with as.Date(date, format="%d.%m.%y") for some reason it converts it into 2061-10-10.

Is there an elegant way to correct for this or do I have to do it manually by slicing the string and adding "19" in front?

I've also tried the zoo package which brings up the same (wrong) result.

Answer

AK88 picture AK88 · Oct 10, 2017
x = format(as.Date("10.10.61", "%d.%m.%y"), "19%y-%m-%d")
x = as.Date(x)
x
class(x)