구체적으로 내가 알고 싶은 것은 10:00 EST(10AM)일 때 사용자의 현재 시간대는 무엇입니까? 글을 쓰는 시점에서 영국 사용자(GMT)의 답변은 15:00(오후 3시)입니다.
내 구체적인 경우에는 분이나 날짜도 필요하지 않고 시간( 15
이 경우)만 필요합니다.
이러한 성격의 대부분의 문제는 현재 시간(지금) 또는~에서사용자의 시간대입니다. 어느 시점에서는 변환을 하기 위해 Ruby로 전환하기도 했지만 UTC가 아닌 다른 곳에서 작동하도록 하는 것이 약간 어려웠습니다. 이를 수행할 수 있는 방법이 있어야 한다고 생각 date
하지만 macOS는 BSD를 사용 date
하고 대부분의 답변은 GNU를 사용합니다.
답변1
상당히 투박하지만 MacOS에서는 쉘과 다음 명령만 사용하여 수행해야 합니다 date
.
2017-01-05 10:00:00 북미 동부 표준시를 시스템 현지 시간대로 변환합니다.
date -r $(TZ=America/Montreal date -j 010510002017 +%s)
현지 시간대가 아닌 다른 시간대로 변환하려면 외부 명령 앞에 원하는 대상 시간대를 추가하세요.
TZ=Australia/Sydney date -r $(TZ=America/Montreal date -j 010510002017 +%s)
매우 이상한 날짜 입력 형식에 유의하세요.mmddHHMMYYYY
답변2
POSIX API는 이와 관련하여 그다지 풍부하지 않습니다. 아마도 다음과 같은 것을 사용하는 것이 더 나을 것입니다.피츠시스템 도구보다:
#!/usr/bin/python
import datetime
import pytz
eastern = pytz.timezone('America/Montreal')
britain = pytz.timezone('Europe/London')
datetime.datetime(2017, 1, 5, 10, 0, tzinfo=eastern).astimezone(britain)