내 "날짜"가 시간대를 처리하지 않는 이유는 무엇입니까? [복사]

내 "날짜"가 시간대를 처리하지 않는 이유는 무엇입니까? [복사]

GNU coreutils 날짜 v8.4(CentOS)에서는 몇 가지 이상한 문제가 발생하지만 v8.21(Ubuntu/Mint)에서는 발생하지 않습니다.

v8.4에서는 다음과 같은 출력을 얻습니다(PST를 사용 중입니다).

$ date --version | head -n 1
date (GNU coreutils) 8.4
$ date -d '2014-11-08'
Sat Nov  8 00:00:00 PST 2014
$ date -d '2014-11-08T00:00:00'
Fri Nov  7 09:00:00 PST 2014

내가 요청하지 않았음에도 불구하고 UTC로 시간대 수정을 시도하고 있다고 가정하고 있으며 이 동작은 내 로컬 Linux Mint 시스템에서 발생하지 않습니다.

좋습니다. 지정된 대로 시간대 지정자를 추가하겠습니다.W3. 내 컴퓨터에서:

$ date --version | head -n 1
date (GNU coreutils) 8.21
$ date -d '2014-11-08T00:00:00-0800'
Sat Nov  8 00:00:00 PST 2014
$ date -d '2014-11-08T00:00:00-08:00'
Sat Nov  8 00:00:00 PST 2014

엄청난. 하지만 CentOS에서는:

$ date --version | head -n 1
date (GNU coreutils) 8.4
$ date -d '2014-11-08T00:00:00-0800'
date: invalid date `2014-11-08T00:00:00-0800'
$ date -d '2014-11-08T00:00:00-08:00'
date: invalid date `2014-11-08T00:00:00-08:00'

편집하다:다른 하나는 작동하지 않습니다. date자체 출력을 사용하십시오.

$ date -d "$(date -Ihours)"
date: invalid date `2014-11-08T13-0800'

다음과 같은하다일하다:

$ date -d '2014-11-08 00:00:00 -08:00'
Sat Nov  8 00:00:00 PST 2014

그러나 전혀 관련이 없는 요구 사항으로 인해 내 날짜 문자열에는 공백이 포함될 수 없습니다.

혼란스러워요. 내가 찾고 있어요최근 변경사항date그러나 유망해 보이는 어떤 것도 보지 못했습니다.

내 질문:date시간대를 전혀 변경하지 않거나(가급적) 공백 없이 사람이 읽을 수 있는 문자열에서 시간대 입력을 허용하려면 어떻게 해야 합니까 ?

답변1

링크를 다시 확인하세요.풀어 주다, 커밋 메시지가 있습니다:

date: support parsing of ISO-8601-with-"T" dates

이는 coreutils 8.13에서 구현됩니다(참조:변경 로그).

관련 정보