【问题标题】:What is the local timezone什么是当地时区
【发布时间】:2012-08-09 04:08:14
【问题描述】:

假设服务器 (gae) 位于美国西海岸 (PST),约会时间是上午 10:00 在纽约市 (EST),而芝加哥 (CST) 的一个人正在使用他的设备知道时间在纽约的约会。

CST 中芝加哥设备中的人如何在访问位于 EST 的网站时看到约会是在上午 10 点,并且在 MST 中的开发人员如何在日期时间中设置参数是否重要?使用python的时间和日历?

另外,这里的“当地时间”是什么时区?

【问题讨论】:

  • 美国西海岸是太平洋时间 (PST),尽管目前美国很少使用标准时间,所以您需要 PDT。此外,GAE 服务器的时钟都使用 UTC,即使日志文件默认显示太平洋时间。
  • 很好的答案,Wooble。这里的“当地时间”是什么?是EST,生成“客户端”html的地方吗?
  • 在我问更多之前让我考虑一下。
  • 确实在我的问题中使用了该短语,因为在文档和对话中使用该短语时我不清楚。谢谢。
  • @zerowords:在文档中“本地时间”是指本地机器(运行进程的机器)认为是当前时间的时间。

标签: python datetime timezone


【解决方案1】:

第三方模块pytz 提供了一种在时区之间转换的简单方法。例如,

import datetime as dt
import pytz

utc = pytz.utc
western = pytz.timezone('US/Pacific')
newyork = pytz.timezone('America/New_York')
chicago = pytz.timezone('America/Chicago')

假设有人在纽约上午 10 点创建约会:

date = dt.datetime(2012, 8, 12, 10)    # naive datetime
print(date)
# 2012-08-12 10:00:00  

# localize converts naive datetimes to timezone-aware datetimes.
date_in_newyork = newyork.localize(date)  # timezone-aware datetime
print(date_in_newyork)
# 2012-08-12 10:00:00-04:00

您在西海岸的服务器应将此日期时间存储为 UTC:

# astimezone converts timezone-aware datetimes to other timezones.
date_in_utc = date_in_newyork.astimezone(utc)
print(date_in_utc)
# 2012-08-12 14:00:00+00:00

现在,当芝加哥的人想知道约会的时间时,服务器可以将 UTC 转换为芝加哥时间、纽约时间或其他时间:

date_in_chicago = date_in_utc.astimezone(chicago)
print(date_in_chicago)
# 2012-08-12 09:00:00-05:00

date_in_newyork2 = date_in_utc.astimezone(newyork)
print(date_in_newyork2)
# 2012-08-12 10:00:00-04:00

【讨论】:

    猜你喜欢
    • 2011-05-08
    • 1970-01-01
    • 2021-06-25
    • 2022-12-05
    相关资源
    最近更新 更多