2015-07-11 95 views
0

我想使用strftime函數轉換日期時間的字符串表示形式,但結果不是我所期望的。使用strftime將字符串轉換爲datetime

str_dtime <- "1/2/2007 00:00:00" 
strftime(str_dtime, format = "%d/%m/%Y %I:%M:%S") 

在這個例子中返回的值是

"20/02/0001 12:00:00"

我是新來的R和我不知道什麼是錯在這裏。它看起來像我的格式設置匹配,所以我不知道是否有其他事情正在進行?

+1

'strptime(str_dtime,format =「%d /%m /%Y%H:%M:%S」)'適用於我用'%H'替換'%I'並使用'strptime'相反(不知道有什麼區別) – mts

+0

'strftime'不會將字符串轉換爲日期時間;這就是'strptime'的用途。 'strftime'將日期時間轉換爲字符串。 –

回答

4

我看到兩個問題。首先,strftimef ormats datetime對象到字符串。 strptime將字符串轉換爲日期時間對象。其次,"%I"格式只接受01-12之間的值,不包括00,就像你的例子。因此,您可能需要使用"%H"

R> strptime(str_dtime, format = "%d/%m/%Y %H:%M:%S") 
[1] "2007-02-01 CST" 

另請注意,R約定在午夜時間不打印"H:M:S"