2011-12-06 46 views
7
D <- "06.12.1948"     # which is dd.mm.yyyy 
as.Date(D, "%d.%m.%y")   # convert to date 
[1] "2019-12-06"     # ????  

Tôi thiếu gì?Chuyển đổi chuỗi thành ngày, định dạng: "dd.mm.yyyy"

Sys.getlocale (category = "LC_ALL") [1] "LC_COLLATE = German_Austria.1252; LC_CTYPE = German_Austria.1252; LC_MONETARY = German_Austria.1252; LC_NUMERIC = C; LC_TIME = German_Austria.1252"

Trả lời

19

Định dạng là trường hợp nhạy cảm ("% y" là mơ hồ và hệ thống phụ thuộc, tôi tin rằng):

as.Date(D, "%d.%m.%Y") 
[1] "1948-12-06" 

Các chủ đề trợ giúp ?strptime có chi tiết:

‘%y’ Year without century (00-99). On input, values 00 to 68 are 
     prefixed by 20 and 69 to 99 by 19 - that is the behaviour 
     specified by the 2004 and 2008 POSIX standards, but they do 
     also say ‘it is expected that in a future version the default 
     century inferred from a 2-digit year will change’. 
+0

Để mở rộng, '"% y "' là 2 năm, vì vậy nó được đọc trong "19" vào năm 1948. Bạn muốn '"% Y "'. –

Các vấn đề liên quan