具体的に私が知りたいのは、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)