Вы не упоминаете, каков Ваш язык серверной стороны. Или, более уместно, какую платформу Вы используете - если любой - на серверной стороне.
IME, я организую вещи на серверной стороне и позволяю всему этому вытряхнуть на веб-страницу. Платформе дают задачу организации не только JS, который каждая страница должна загрузить, но также и фрагменты JS, которые работают со сгенерированной разметкой. Такие фрагменты, которые Вы обычно не хотите испускаемый несколько раз - который является, почему они абстрагированы в платформу для того кода для заботы о той проблеме.:-)
Для страниц конца, которые должны испустить их собственный JS, я обычно, находят, что существует логическая структура в сгенерированной разметке. Такой локализованный JS может часто собираться в запуске и/или конце такой структуры.
Примечание, что ни одно из этого не освобождает Вас от записи эффективного JavaScript!:-)
Думаю, вам следует осмотреться: datetime.astimezone ()
http://docs.python.org/library/datetime.html#datetime.datetime.astimezone
См. Также модуль pytz - его довольно легко использовать - например:
eastern = timezone('US/Eastern')
Пример:
from datetime import datetime
import pytz
from tzlocal import get_localzone # $ pip install tzlocal
utc_dt = datetime(2009, 7, 10, 18, 44, 59, 193982, tzinfo=pytz.utc)
print(utc_dt.astimezone(get_localzone())) # print local time
# -> 2009-07-10 14:44:59.193982-04:00
На днях я написал что-то вроде этого:
import time, datetime
def nowString():
# we want something like '2007-10-18 14:00+0100'
mytz="%+4.4d" % (time.timezone / -(60*60) * 100) # time.timezone counts westwards!
dt = datetime.datetime.now()
dts = dt.strftime('%Y-%m-%d %H:%M') # %Z (timezone) would be empty
nowstring="%s%s" % (dts,mytz)
return nowstring
Так что интересная часть для вас, вероятно, это строка, начинающаяся с "mytz = ...". time.timezone возвращает местный часовой пояс, хотя и с противоположным знаком по сравнению с UTC. Таким образом, он говорит "-3600", чтобы выразить UTC + 1.
Несмотря на его игнорирование перехода на летнее время (DST, см. Комментарий), я оставляю это для людей, которые возятся с time.timezone
.
я верю лучшему способу сделать, это должно использовать класс LocalTimezone
, определенный в документация datetime.tzinfo
(goto http://docs.python.org/library/datetime.html#tzinfo-objects, и прокрутить вниз к разделу "Example tzinfo classes"):
Принятие Локальный
является экземпляром LocalTimezone
t = datetime.datetime(2009, 7, 10, 18, 44, 59, 193982, tzinfo=utc)
local_t = t.astimezone(Local)
затем , ул. (local_t)
дает:
'2009-07-11 04:44:59.193982+10:00'
, который является тем, что вы хотите.
(Примечание: это может выглядеть странным вам, потому что я нахожусь в Новом Южном Уэльсе, Австралия, которая составляет 10 или 11 часов вперед из UTC)