2012-08-12 62 views
1

假設服務器(gae)位於美國西海岸(PST),約在上午10:00在紐約市(EST),芝加哥(CST)的一個人正在使用他的設備瞭解紐約市的預約時間。什麼是當地時區

芝加哥CST公司的人員如何看到約會時間是上午10點,當她前往位於EST的網站時,MST中的開發人員如何設置日期時間參數,時間和日曆使用python?

此外,什麼時區是「當地時間」在這裏?

+0

美國西海岸是太平洋時間(PST),儘管目前美國很少使用標準時間,所以你想要PDT。此外,即使日誌文件默認顯示爲和平時間,GAE服務器也會在其時鐘上使用UTC。 – geoffspear 2012-08-12 21:31:53

+0

偉大的回答,Wooble。什麼是「當地時間」?它是EST,「客戶」html生成的地方嗎? – zerowords 2012-08-12 21:43:48

+0

讓我在再問更多之前先考慮一下。 – zerowords 2012-08-12 21:49:41

回答

2

第三方模塊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 
相關問題