2017-09-10 1 views
0

"EDT"、 "CDT"という形式のtz名があります。tzname値( "EDT"、 "CDT"、...)のみを持つdatetimeインスタンスにtzを設定します。

タイムゾーンをこのようなtz名のdatetimeインスタンスに設定することはできますか? (* BSD、Linuxでは、Solaris、およびダーウィンを含む)多くのUNIXシステムでは

+0

すぎて、有効なタイムゾーン文字列で正常に動作。それはできません。私はなぜ私の答えの最初の部分で、説明するためにリンクされた複製。 –

答えて

0

、それ は、タイムゾーンのルールを指定するには、システムのzoneinfoディレクトリ(tzfile(5))データベース を使用する方が便利です。これを行うには、 変数を、システムのzoneinfoタイムゾーンデータベースのルートである (通常は/ usr/share/zoneinfoにある )に関連する、必要なタイムゾーンデータファイルのパスに設定します。たとえば、「US/Eastern」、 「オーストラリア/メルボルン」、「エジプト」または「ヨーロッパ/アムステルダム」などです。

>>> os.environ['TZ'] = 'US/Eastern' 
>>> time.tzset() 
>>> time.tzname 
('EST', 'EDT') 
>>> os.environ['TZ'] = 'Egypt' 
>>> time.tzset() 
>>> time.tzname 
('EET', 'EEST') 

それは短い答えはノーである

+0

残念ながら、それは私のシステムに関するものではありません。 これはスクレーパーからJSONデータで受け取った値です。私は2つの別々のフィールドを持っています - datetimeとtzをフォーマットIで定義しました。そして、私は何とかdatetimeにtzを適用する必要があります。 私は 'America/Chicago' == 'CDT'を知っています。私が「アメリカ/シカゴ」の文字列を持っているなら、私は簡単にtzを作ることができます。しかし、私は 'CDT'の文字列しか持っていません - それでtzを作成する方法を見つけることができません。 – uCodista

+0

strptimeを使用して文字列からcreatr datetimeオブジェクトを試すことができます –

+0

2つの値があります。 'TSTAMP = 15051384000' ' TZNAME =「CDT'' 'インポート日時dt' ' my_time = dt.datetime.fromtimestamp(TSTAMP) ' として与えられると、 "my_time"」にTZを適用する方法tz_name "? – uCodista

関連する問題