關於python下各種時間格式的轉換

2021-08-11 10:25:46 字數 2277 閱讀 1863

今天遇到了乙個聊天的

bug,因為時間戳沒有精確到float型別導致時間順序錯亂,顯示錯誤和一些聊天記錄會被覆蓋。於是了解了一下python時間的一些顯示和轉換方式。

python在遇到時間相關問題時候通常會用到以下幾種時間格式1。時間戳(int,float型別) 2。元組(struct_time型別)內涵九個元素 3。datetime型別(如:

2017-11-28 14:49:43.097000

)4。格式化的時間字串 (string型別)

時間戳作為其中一種表示時間的方式,是指格林威治時間

2023年01月

01日00時00分00秒(北京時間2023年01月01日08時00分00秒)起至現在的總秒數。

1)最簡單的獲取時間戳的方式是匯入 time模組  之後直接通過 time.time()方法可以獲得當前時間,獲得的時間戳型別是float型別。

import time

time.time()

2)time.gmtime()或者 time.localtime() 方法 將獲得的時間戳型別改為struct_time型別 兩種方法都可以傳入時間戳引數,預設傳入當前時間戳

(區別是gmtime()方法返回的是0時區的時間,localtime()方法返回的是當地時區的時間,中國是8時區,所以相差8個小時)

返回值為以下九個元素   time.struct_time(tm_year=2017, tm_mon=11, tm_mday=28, tm_hour=6, tm_min=1, tm_sec=15, tm_wday=1, tm_yday=332, tm_isdst=0)

3)from datetime import datetime

datetime.now()方法獲取datetime格式的當前時間(當前時區 作業系統設定的時區)。

4)時間轉換:

*  struct_time轉化為時間戳

time.mktime(

t)

*struct_time轉換成自定義的string格式

time.strftime("%y-%m-%d %x", time.localtime())

精確到秒

*str 轉成struct_time

time.strptime(timestr, "%y-%m-%d %h:%m:%s")

*timestamp轉化為datetime

from datetime import datetime

datetime.fromtimestamp(time.time())

*datetime 轉timestamp

from datetime import datetime

dt = datetime(2017, 11, 18, 12, 20) # 用指定日期時間建立datetime

dt.timestamp() # 把datetime轉換為timestamp

*datetime 轉為str

from datetime import datetime

t=datetime.now()   t.strftime(

"%y-%m-%d %h:%m:%s.%f"

)

*str 轉為datetime

from datetime import datetime

datetime.strptime('2017-11-28 15:19:59', '%y-%m-%d %h:%m:%s')

Python中各種時間格式轉換

大家平時寫python程式的時候難免會遇到各種各樣時間格式的轉換,從時間戳轉字串?從字串轉datetime格式等等,方法比較多,我覺得不太好記,而且也沒必要記,語法嘛有個地方總結了,用的時候方便查閱即可。今天稍作總結,有不正確的地方希望大家提出建議,逐步改進 coding utf 8 import ...

列印各種時間格式

列印各種時間格式 bin bash echo 顯示星期簡稱 如 sun date aecho 顯示星期全稱 如 sunday date aecho 顯示月份簡稱 如 jan date becho 顯示月份全稱 如 january date becho 顯示數字月份 如 12 date mecho 顯...

HIVE 各種時間格式處理

方法一 date format 只支援yyyy mm dd yyyymmdd000000 select date format 2019 10 07 yyyymmdd000000 20191007000000 方法二 from unixtime unix timestamp select from ...