제가 제공한 비UTC 시간대 시간은 스웨덴 시간대(UTC+1)인 2016년 8월 17일 21:41입니다. 각 항목에 대해 두 개의 녹음이 있습니다. CSV 파일에 멋지게 기록하는 방법을 생각 중입니다. 처음에는 수동으로 Unix 타임스탬프로 변환하려고 생각했지만, 그런 다음 170820162141
시간대에 대한 별도의 열을 사용하여 원래 시간대 등을 유지하는 것을 생각하기 시작했습니다. 그러나 나는 아직도 이러한 버전이 표준이라고 생각하지 않습니다. 스레드를 기반으로 Unix 타임스탬프를 생성하는 방법을 알고 있습니다.Unix 타임스탬프를 생성하는 방법은 무엇입니까?다음 명령 구조도 여기서 작동합니다.
% https://stackoverflow.com/a/2764285/54964
date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"
R
// Bash
/ .... 를 사용하여 Zsh
내 제안에 따른 CSV 파일을 읽습니다.
- 사용자 정의 타임스탬프 등 전자(예:
170820162141
초 없음) - 시간대 등에 대한 별도의 열입니다.
UTC+1
CSV 파일 예
Time_start, Time_end, Time_start_timezone
170820162141, 180820160901, UTC+1
테스트 함수 의사 코드
Count time difference between two custom timestamps.
thrig 반복 제안
데이터를 다음으로 변경했습니다.
- 에 시간대
+0100
(UTC+1)를 추가합니다, , , 03012011-2011+0100, 03022011-2011+0100
. strptime(from,format="%d%m%Y-%H%M%z
내가 추가한 시간대의 형식을 지정합니다%z
.data
해당 데이터의 시간대가 올바르게 설정되면 인쇄물이 항상 올바르게 표시됩니다.
코드는 5개 데이터 열에서 실행되며 Rscript script.r
마지막 2개 열에는 시간 데이터가 포함됩니다.
library('methods')
# https://unix.stackexchange.com/a/363290/16920
setClass('iso8601')
#03012011-2011
setAs("character","iso8601",function(from) strptime(from,format="%d%m%Y-%H%M%z"))
data <- read.csv("/home/masi/Documents/Data/log.csv", colClasses=c(NA, NA, NA, "iso8601","iso8601"), header=TRUE) # my particular case
data
출력: 완벽해요! 시간대가 자주 바뀌기 때문에 데이터에 맞게 시간대를 올바르게 조정해야 합니다.
- 아니
library('methods')
, 당신 은 알 거에요Rscript Error: could not find function "setClass"
.
답변1
ISO 8601은 가능한 형식 중 하나입니다. 시간대 오프셋을 포함할 수 있으며 strptime
여러 언어로 구문 분석할 수 있습니다.
$ cat x
2017-05-05T18:25:28+0100,2017-05-05T18:33:22+0100,foo
2017-05-05T18:34:21+0100,2017-05-05T18:38:52+0100,bar
$ R -q --silent --no-save
> R.version.string
[1] "R version 3.4.0 (2017-04-21)"
> setClass('iso8601')
> setAs("character","iso8601",function(from) strptime(from,format="%Y-%m-%dT%H:%M:%S%z"))
> data=read.csv("x",colClasses=c("iso8601","iso8601",NA),header=FALSE)
> data
V1 V2 V3
1 2017-05-05 17:25:28 2017-05-05 17:33:22 foo
2 2017-05-05 17:34:21 2017-05-05 17:38:52 bar
>
date
ISO 8601 형식으로 날짜가 생성될 때까지 기다립니다 .
$ date "+%Y-%m-%dT%H:%M:%S%z"
2017-05-05T19:20:58+0000
$ TZ=US/Pacific date "+%Y-%m-%dT%H:%M:%S%z"
2017-05-05T12:21:10-0700
$