web-dev-qa-db-ja.com

日付と時刻を文字型から日付時刻型に変換する方法

こんにちは、これを日付と時刻の両方を保持する日時型オブジェクトにどのように変換しますか?

DateTime="2007-02-01 00:00:00"

試しました

as.Date(DateTime,'%Y-%m-%d %H:%M:%S') 

時間の部分は返しません。 strptimeと潤滑油を試した後、どのようにしたか理解できませんでした。ありがとう。

12
santoku

@Richard Scrivenが指摘したように、_datetimeクラスではないため、as.Dateを使用しないでください。いくつかの方法があります:

DateTime <- "2007-02-01 00:00:00"
DateTime2 <- "02/01/2007 00:06:10"
## default format Y-m-d H:M:S
> as.POSIXct(DateTime,tz=Sys.timezone())
[1] "2007-02-01 EST"
> as.POSIXlt(DateTime,tz=Sys.timezone())
[1] "2007-02-01 EST"
##
## specify format m/d/Y H:M:S
> as.POSIXct(DateTime2,format="%m/%d/%Y %H:%M:%S",tz=Sys.timezone())
[1] "2007-02-01 00:06:10 EST"
> as.POSIXlt(DateTime2,format="%m/%d/%Y %H:%M:%S",tz=Sys.timezone())
[1] "2007-02-01 00:06:10 EST"
##
## using lubridate
library(lubridate)
> ymd_hms(DateTime,tz=Sys.timezone())
[1] "2007-02-01 EST"
> mdy_hms(DateTime2,tz=Sys.timezone())
[1] "2007-02-01 00:06:10 EST"

format=形式の場合、as.POSIXctおよびas.POSIXlt%Y-%m-%d %H:%M:%Sを指定する必要はありません。 %m/%d/%Y %H:%M:%Sなどの他の場合では、通常、形式を明示的に指定する必要があります。

15
nrussell

「2007-02-01 00:00:00」を日付クラスのオブジェクトに具体的に変換する場合は、これを行う必要があります。これは この質問と回答 に基づいています

print.POSIXct <- function(x,...)print(format(x,"%Y-%m-%d %H:%M:%S"))
x <- "2007-02-01 00:00:00"
x <- as.POSIXct(x,tz=Sys.timezone())
x
2
jazzurro