수색…


소개

R에는 두 개의 날짜 - 시간 클래스 인 POSIXct와 POSIXlt가 포함되어 있습니다 ( ?DateTimeClasses 참조).

비고

함정

POSIXct를 사용하면 자정에는 전체 시간이 저장되지만 날짜와 시간대 만 표시됩니다.

관련 주제

전문 패키지

  • 윤활제

날짜 및 시간 개체의 서식 지정 및 인쇄

# test date-time object
options(digits.secs = 3)
d = as.POSIXct("2016-08-30 14:18:30.58", tz = "UTC")   

format(d,"%S")  # 00-61 Second as integer
## [1] "30"

format(d,"%OS") # 00-60.99… Second as fractional
## [1] "30.579"

format(d,"%M")  # 00-59 Minute
## [1] "18"

format(d,"%H")  # 00-23 Hours
## [1] "14"

format(d,"%I")  # 01-12 Hours
## [1] "02"

format(d,"%p")  # AM/PM Indicator
## [1] "PM"

format(d,"%z")  # Signed offset
## [1] "+0000"

format(d,"%Z")  # Time Zone Abbreviation
## [1] "UTC"

형식 문자열과 다른 형식에 대한 자세한 내용은 ?strptime 을 참조하십시오.

문자열을 날짜 / 시간 객체로 파싱하기

문자열을 POSIXct 및 POSIXlt로 구문 분석하는 함수는 비슷한 매개 변수를 사용하고 유사한 결과를 반환하지만 날짜 - 시간이 저장되는 방법에는 차이가 있습니다. "주의 사항"을 참조하십시오.

as.POSIXct("11:38",                        # time string
           format = "%H:%M")               # formatting string
## [1] "2016-07-21 11:38:00 CDT"           
strptime("11:38",                          # identical, but makes a POSIXlt object
         format = "%H:%M")
## [1] "2016-07-21 11:38:00 CDT"

as.POSIXct("11 AM",                   
           format = "%I %p")        
## [1] "2016-07-21 11:00:00 CDT"

날짜 및 시간대가 입력됩니다.

as.POSIXct("11:38:22",                 # time string without timezone
           format = "%H:%M:%S",   
           tz = "America/New_York")    # set time zone
## [1] "2016-07-21 11:38:22 EDT"

as.POSIXct("2016-07-21 00:00:00",
           format = "%F %T")           # shortcut tokens for "%Y-%m-%d" and "%H:%M:%S"

형식 문자열에 대한 자세한 내용은 ?strptime 을 참조하십시오.


노트

누락 된 요소

  • 날짜 요소가 제공되지 않으면 현재 날짜의 요소가 사용됩니다.
  • time 엘리먼트가 제공되지 않으면, 자정부터 사용된다. 즉 0이다.
  • string 또는 tz 매개 변수에 시간대가 제공되지 않으면 현지 표준 시간대가 사용됩니다.

시간대

날짜 - 시간 산술

시간을 더하거나 뺄 때 POSIXct를 사용합니다. POSIXct는 시간을 초 단위로 저장하기 때문입니다.

## adding/subtracting times - 60 seconds
as.POSIXct("2016-01-01") + 60
# [1] "2016-01-01 00:01:00 AEDT"

## adding 3 hours, 14 minutes, 15 seconds
as.POSIXct("2016-01-01") + ( (3 * 60 * 60) + (14 * 60) + 15)
# [1] "2016-01-01 03:14:15 AEDT"

보다 공식적으로, as.difftime 은 날짜 또는 datetime 객체에 추가 할 기간을 지정하는 데 사용할 수 있습니다. 예 :

as.POSIXct("2016-01-01")         + 
  as.difftime(3,  units="hours") +
  as.difftime(14, units="mins")  +
  as.difftime(15, units="secs")
# [1] "2016-01-01 03:14:15 AEDT"

날짜 / 시간의 차이를 확인하려면 difftime() 을 초, 분, 시간, 일 또는 주 단위로 사용하십시오.

# using POSIXct objects
difftime(
  as.POSIXct("2016-01-01 12:00:00"), 
  as.POSIXct("2016-01-01 11:59:59"), 
  unit = "secs")
# Time difference of 1 secs

날짜 - 시간 순서를 생성하려면 seq.POSIXt() 또는 단순히 seq .



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow