python中datetime時間格式,字符串時間格式,時間戳之間的轉換和獲取當前時間的前幾天時間

Python中幾種時間類型格式

來來回回轉換,煩死我了,這把一網打盡,看哪個還說不會。

時間對象格式(datetime.datetime(2019, 11, 18, 13, 45, 30) )

此種數據常見於獲取當前日期,或者從 MySQL 數據庫庫中讀取到的事件對象,

使用時,需要先導入 datetime 模塊

import datetime

或者

from datetime import datetime

獲取當前日期

>>> now = datetime.now()
>>> now
>>> datetime.datetime(2019, 11, 18, 13, 48, 44, 462030)

字符串格式(“2019-11-18 13:45:30” )

此種數據被稱作 字符串 類型時間,常見於經過python處理的存入的Redis數據庫中

時間戳格式 (1574056790.3)

時間戳是指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現在的總秒數。

獲取方法

>>> import time
>>> time.time()
>>> 1574056790.3225868

三種格式之間的轉換

datetime 轉成字符串
>>> from datetime import datetime
>>> time1 = datetime.now()  #  datetime.datetime(2019, 11, 18, 14, 7, 28, 58389)
>>> res_time1 = time1.strftime("%Y-%m-%d")  # '2019-11-18'
>>> res_time2 = time1.strftime("%Y-%m-%d %H:%M:%S")  #  '2019-11-18 14:07:28'
時間戳 轉成 字符串
>>> from datetime import datetime
>>> import time
>>> time2 = time.time()  # 1574057459.076734
>>> time3 = int(time2)  # 1574057459
>>> res_time3 = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time3))  # '2019-11-18 14:10:59'
字符串 轉成 時間戳

需要先轉換成 datetime 格式,然後再進行轉換

>>> from datetime import datetime
>>> import time
>>> time4 = '2019-11-18 14:10:59'
>>> time5 = time.strptime(time4, "%Y-%m-%d %H:%M:%S") # time.struct_time(tm_year=2019, tm_mon=11, tm_mday=18, tm_hour=14, tm_min=10, tm_sec=59, tm_wday=0, tm_yday=322, tm_isdst=-1)
>>> res_time4 = time.mktime(time5)  # 1574057459.0
datetim 轉成 時間戳
>>> from datetime import datetime
>>> import time
>>> time6 = datetime.now()  # datetime.datetime(2019, 11, 18, 14, 24, 50, 483303)
>>> time7 = datetime.timetuple(time6)  #  time.struct_time(tm_year=2019, tm_mon=11, tm_mday=18, tm_hour=14, tm_min=24, tm_sec=50, tm_wday=0, tm_yday=322, tm_isdst=-1)
>>> res_time5 = time.mktime(time7)  # 1574058290.0
字符串 轉成 datetime
>>> from datetime import datetime
>>> import time
>>> time8 = '2019-11-18 14:10:59'
>>> res_time6 = datetime.strptime(time8, "%Y-%m-%d %H:%M:%S")  # datetime.datetime(2019, 11, 18, 14, 10, 59
時間戳 轉成 datetime
>>> from datetime import datetime
>>> import time
>>> time9 = time.time()  # 1574057459.076734
>>> time10 = int(time9)  # 1574057459
>>> dateArray = datetime.datetime.utcfromtimestamp(timeStamp)  # datetime.datetime(2013, 10, 10, 15, 40)

獲取三天前時間

>>> import time
>>> import datetime
>>> threeDayAgo = (datetime.datetime.now() - datetime.timedelta(days = 3))
>>> threeDayAgo
>>> datetime.datetime(2019, 11, 15, 14, 44, 16, 195267)

各種時間格式的簡寫

%a 星期的簡寫。如 星期三爲Web
%A 星期的全寫。如 星期三爲Wednesday
%b 月份的簡寫。如4月份爲Apr
%B 月份的全寫。如4月份爲April
%c:  日期時間的字符串表示。(如: 04/07/10 10:43:39%d:  日在這個月中的天數(是這個月的第幾天)
%f:  微秒(範圍[0,999999]%H:  小時(24小時制,[0, 23]%I:  小時(12小時制,[0, 11]%j:  日在年中的天數 [001,366](是當年的第幾天)
%m:  月份([01,12]%M:  分鐘([00,59]%p:  AM或者PM
%S:  秒(範圍爲[00,61],爲什麼不是[00, 59],參考python手冊~_~%U:  周在當年的週數當年的第幾周),星期天作爲周的第一天
%w:  今天在這周的天數,範圍爲[0, 6]6表示星期天
%W:  周在當年的週數(是當年的第幾周),星期一作爲周的第一天
%x:  日期字符串(如:04/07/10%X:  時間字符串(如:10:43:39%y:  2個數字表示的年份
%Y:  4個數字表示的年份
%z:  與utc時間的間隔 (如果是本地時間,返回空字符串)
%Z:  時區名稱(如果是本地時間,返回空字符串)
%%:  %% => %
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章