1. python中datetime怎麼設置時區
如果你的程序要考慮時區,可以使用pytz。datetime模塊中有tzinfo相關的東西,但是它是一個抽象類,文檔上說:
tzinfo is an abstract base clase, meaning that this class should not be instantiated directly. You need to derive a concrete subclass, and (at least) supply implementations of the standard tzinfo methods needed by the datetimemethods you use. The datetime mole does not supply any concrete subclasses of tzinfo.
上面是說tzinfo是一個抽象類,不應該被直接實例化。你需要派生子類,提供相應的標准方法。datetime模塊並不提供tzinfo的任何子類。
所以你可能會使用pytz這個模塊。通過easy_install可以安裝。目前它的最新文檔在這里。
關於時區使用的幾點想法:
1. 如果你的網站可能有來自其它時區的,可能你要考慮這個問題。都是一個地區的話,還要看伺服器是否與用戶在一個地區,如果不在,也要考慮。
2. 因此,基本上要考慮伺服器時區與用戶時區。伺服器時區可以配置在系統中,全局生效。而用戶時區則與用戶相關,可以由用戶自已進行設置。
3. 在生成相關時間對象時要加入時區的信息,並在輸出時進行合適的轉換。
而pytz提供了創建某個時區對象的方法,如,中國時區:
>>> import pytz
>>> pytz.country_timezones('cn')
['Asia/Shanghai', 'Asia/Harbin', 'Asia/Chongqing', 'Asia/Urumqi', 'Asia/Kashgar']
可以看到,中國的時區可能有:'Asia/Shanghai', 'Asia/Harbin', 'Asia/Chongqing',最後兩個不知道是什麼。我們可能使用的'Asia/Shanghai'比較多。
因此可以創建一個時區對象:
>>> tz = pytz.timezone('Asia/Shanghai')
然後在創建時間對象時進行指定:
>>> import datetime
>>> datetime.datetime.now(tz)
datetime.datetime(2009, 2, 21, 15, 12, 33, 906000, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)
>>> datetime.datetime(2009, 2, 21, 15, 12, 33, tzinfo=tz)
datetime.datetime(2009, 2, 21, 15, 12, 33, tzinfo=<DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>)
>>> datetime.date(2009, 2, 21, tzinfo=tz)
Traceback (most recent call last):
File "<stdin>", line 1, in <mole>
TypeError: 'tzinfo' is an invalid keyword argument for this function
>>> datetime.time(15, 12, 33, tzinfo=tz)
datetime.time(15, 12, 33, tzinfo=<DstTzInfo 'Asia/Shanghai' LMT+8:06:00 STD>)
從上面可以看出now(), datetime(), time()都是可以指定tzinfo信息的,而date是不行的,不知道為什麼。所以最好的方法是內部使用datetime對象,需要時進行時區轉換,然後再輸出。
時區轉換:
>>> utc = pytz.utc
>>> n = datetime.datetime.now(tz)
>>> n
datetime.datetime(2009, 2, 21, 15, 16, 41, 843000, tzinfo=<DstTzInfo 'Asia/Shanghai' CST+8:00:00 STD>)
>>> new = n.astimezone(utc)
>>> new
datetime.datetime(2009, 2, 21, 7, 16, 41, 843000, tzinfo=<UTC>)
>>> utc.normalize(n.astimezone(utc))
datetime.datetime(2009, 2, 21, 7, 16, 41, 843000, tzinfo=<UTC>)
2. 用python寫個程序,能顯示不同時區的時間(無第三方模塊),求高手解答
importtime
defztime(t,z):#t:時間戳,z:時區,參數格式為zls的key
#以下時區列表參考維基網路http://zh.wikipedia.org/wiki/%E6%97%B6%E5%8C%BA%E5%88%97%E8%A1%A8
zls={'0':0,
'-12':-12,
'-11':-11,
'-10':-10,
'-9:30':-9.5,
'-9':-9,
'-8':-8,
'-7':-7,
'-6':-6,
'-5':-5,
'-4:30':-4.5,
'-4':-4,
'-3:30':-3.5,
'-3':-3,
'-2':-2,
'-1':-1,
'1':1,
'2':2,
'3':3,
'3:30':3.5,
'4':4,
'4:30':4.5,
'5':5,
'5:30':5.5,
'5:45':5.75,
'6':6,
'6:30':6.5,
'7':7,
'8':8,
'9':9,
'9:30':9.5,
'10':10,
'10:30':10.5,
'11':11,
'11:30':11.5,
'12':12,
'12:45':12.75,
'13':13,
'14':14}
t2=time.localtime(t+3600*zls[z])#在時間戳t上加減各時區對應時長(註:標准時間戳為GMT時間),當前時間的t值為time.mktime(time.gmtime())
returntime.strftime('%Y-%m-%d%H:%M:%S',t2)
printztime(time.mktime(time.gmtime()),'-12')#例:-12時區的當前時間
printztime(time.mktime(time.gmtime()),'12:45')#例:+12:45時區的當前時間
printztime(time.mktime(time.gmtime()),'8')#例:北京時間
printztime(time.mktime(time.gmtime()),'0')#例:格林尼治時間
3. python 獲取系統時間有問題(時區)
確保系統時區設置正確。date命令顯示的是本地時間。
然後 python datetime.now() 默認就是本地時間。
>>>importdatetime
>>>datetime.datetime.now()
datetime.datetime(2016,8,5,16,51,52,67275)
>>>print(datetime.datetime.now())
2016-08-0516:51:59.972713
>>>
4. gtime python中localtime和gtime的區別及時區計算
這是對的,差異在於我們是東八區。 一個是標准時間,一個是本地時間。 中國地區時區是+8,time可以得到東八區的時間,gmtime得到的是標准時間。
5. python3.10和3.7的區別
在 Python 3.9 中創建了一個名為 zoneinfo 的新模塊,通過此模塊,您可以訪問 IANA 或互聯網號碼分配機構時區資料庫,默認情況下,此模塊使用系統的本地時區數據,但是3.7就並沒有這個模塊,導致在默認情況下並不能系統的顯示出本地的具體數據。對於3.7來說也有其有點,在於Python 3.97增加了另一個很酷的功能,引起了很多關注,Python 3.7現在可以使用運算符合並或更新字典。
新的運算符 ie ( | ) 和 ( |= ) 已添加到 Python 3.7內置 dict 類中,您可以使用類似於下面標記的代碼訪問這些運算符以合並或更新字典。
使用 Python 3.7中添加的新功能可以更輕松地解決字元串處理問題,下面標記的代碼用於從示例字元串中去除前綴和後綴。
removeprefix這個方法根據它的功能恰當地命名,它是去除給定樣本字元串中存在的前綴,removesuffix此方法從傳遞給它的實例字元串中刪除現有的後綴。
由於程序員對其缺陷性質的負面評價,創建了這些新方法來替換舊的 strip方法,下面標記的是一個示例代碼,可以幫助您了解這兩種新方法的實現,以上就是二者之間的區別。
6. python中datetime中now和utcnow的區別
utc時間是0時區的時間,now返回的時間是本地時區的時間。
當然,這一切都依賴於你系統設置的時區
7. pythonmktime 函數 時區
這個問題得分成幾個子問題
1 資料庫本身的時區
2 資料庫里數據的時區
3 python代碼里的時區
首先對1你可以通過命令去設置資料庫的時區 像mysql直接用sql語句就能設置
其次對2 在存儲時間時盡量用timestamp去存儲 這樣讀出來可以方便的轉成所需用的時區的時間
3 python自己的時區 比如你用datetime生成時間時需要每次都記得時區設置 在django和flask里設置好默認時區
做好這三點才能保證程序和資料庫和數據的時區保持統一
8. 怎麼用python直接更改Windows系統時區
請執行以下python代碼,看看能不能更改windows系統時區。
importos
os.system("tzutil/s"CentralStandardTime"");#CentralStandardTime為時區
來自:網頁鏈接
9. python中datetime怎麼設置時區
1、默認情況下,pandas中的時間序列是單純(naive)的時區,其索引的tz欄位為None。
10. python3.9和3.10區別是什麼
Python3.9:
1、IANA時區資料庫:
在Python3.9中創建了一個名為zoneinfo的新模塊,通過這個模塊,可以訪問IANA或互聯網號碼分配機構時區資料庫,默認情況下,此模塊使用系統的本地時區數據。
2、合並和更新字典的函數:
3.9增加了一個很棒的功能,現在可以使用運算符合並或更新字典,新的運算符|和|=已添加到內置dict類中,可以使用一定的代碼訪問這些運算符以合並或更新字典。
3、刪除前綴和後綴:
使用Python3.9中添加的新功能可以更輕松地解決字元串處理問題,removeprefix可以去除給定字元串中存在的前綴,removesuffix用於傳遞給它的示例字元串中刪除現有的後綴。
Python3.9啟用了對所有標准集合的通用語法的支持功能,這些功能目前在輸入模塊中可用。
Python3.10:
1、改進的語法錯誤信息:
大量程序員在錯誤匹配和調試代碼方面面臨困難,3.10添加了一個對用戶非常友好的特性,稱為關聯建議,它帶有語法錯誤信息標記,有助於使用者快速找到其中存在的錯誤或錯誤的代碼的修復程序。
2、更好的類型提示:
從3.9開始,可以不適用union關鍵字而只使用OR符號來匹配參數的多種輸入類型,為同一個變數定義多個輸入類型是一個更簡單的方法。
改進的上下文管理器,更有助於處理文件等資源,現在可以在單個塊中使用多個上下文,也能大大增強代碼,不再需要多個塊或語句。
老男孩IT教育針對企業用人需求專門設置定製化Python課程,學員無基礎也可以學習,所有課程都是老師團隊研發成立,引用了大型企業項目實戰教學,全程採用七位一體授課模式,讓學員邊學邊積累經驗。