Может ли кто-нибудь сказать мне, почему часовой пояс возвращается как «Mountain Daylight Time», а не как MST?strftime не возвращает сокращенный часовой пояс
import time
print time.strftime("%H:%M %A %Z %d %b %y")
Может ли кто-нибудь сказать мне, почему часовой пояс возвращается как «Mountain Daylight Time», а не как MST?strftime не возвращает сокращенный часовой пояс
import time
print time.strftime("%H:%M %A %Z %d %b %y")
Ваш код представляется правильным
import time
print time.strftime("%H:%M %A %Z %d %b %y")
#=> 13:54 Thursday CDT 10 May 12
Какая версия Python вы используете?
У меня такое же, как на Ubuntu Linux, так и на mac-OSX 10.5 (python 2.6 для обоих, я думаю ...) – mgilson
Ditto для OS X 10.7.4 и Python 2.5, 2.6, 2.7 и 3.2. –
Я предполагаю, что вы используете Windows, основываясь на другом вопросе, который вы задали.
В Windows strftime("%Z")
отображает DaylightName
или StandardName
значения, расположенные в этом разделе реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
. На дисплее отображается (зависит) от того, действует ли дневное время. Если вы измените эти параметры, вы должны перезагрузить их, чтобы они вступили в силу.
В Linux, я считаю (около 80% определенных :-), что strftime
использует часовой пояс, который он находит в /etc/localtime
. На Ubuntu вы установили это с помощью dpkg-reconfigure tzdata
. В Linux %Z
отображает временную зону (например, шахта теперь показывает 'EDT'
, %z
показывает смещение от UTC (например, шахта теперь отображает '-0400'
в качестве переносного решения можно использовать модуль 'pytz':' aware_dt.tzname() 'или' aware_dt.strftime ('% Z') ', если вы хотите отформатировать время. – jfs
я столкнулся с той же проблемой, используя окна. В качестве быстрого и грязного раствора для 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)
Это работает, даже на окнах.
Вы используете Linux или Windows? – alan
На ваш вопрос ответили? Если это так, вы должны принять один из ответов. – alan