タイムゾーンがMSTではなく「MountainDaylightTime」として返される理由を誰かに教えてもらえますか?
import time
print time.strftime( "%H:%M %A %Z %d %b %y")
あなたが尋ねた別の質問に基づいて、Windowsを使用していると思います。
Windows では、レジストリの次のキーにあるまたはの値strftime("%Z")
が表示されます: 。どちらが表示されるかは、(もちろん) 夏時間が有効かどうかによって異なります。これらの設定を変更した場合、それらを有効にするために再起動する必要があります。DaylightName
StandardName
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
Linux ではstrftime
、/etc/localtime
. Ubuntu では、 を使用して設定しdpkg-reconfigure tzdata
ます。Linux では%Z
、タイムゾーンが表示されます (例: mine now shows 'EDT'
、%z
UTC からのオフセットが表示されます (例: mine now が表示されます)'-0400'
あなたのコードは正しいようです
import time
print time.strftime( "%H:%M %A %Z %d %b %y")
#=> 13:54 Thursday CDT 10 May 12
どのバージョンの python を実行していますか?
Windowsを使用して同じ問題に遭遇しました。米国の 4 つのタイムゾーンに対する手っ取り早いソリューションとして、大文字以外のすべての文字をタイムゾーン文字列から単純に削除できます。
abbreviated_tz_str = re.sub(r'[^A-Z]', '', multiplatform_tz_str )
例として、タイムスタンプを適切な文字列に変換する方法を次に示します。
import re
import time
def nice_str( timestamp ):
dt_str = time.strftime( "%m/%d/%Y %I:%M:%S %p", time.localtime( timestamp ) )
tz_str = time.strftime( "%Z", time.localtime( timestamp ) )
final_str = "%s (%s)" % ( dt_str, re.sub(r'[^A-Z]', '', tz_str ) )
return( final_str )
そう:
print( nice_str( 1425917368 ) )
ショー:
03/09/2015 09:09:28 AM (PDT)
Windows でも動作します。