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: 時區名稱(如果是本地時間,返回空字符串)
%%: %% => %