python基礎-time和datetime模塊

time模塊和datetime模塊

time模塊python

time模塊中時間表現的格式主要有3種:code

  • timestamp 時間戳:表示的是從1970年01月01日 00:00:00開始按秒計算的偏移量。即從1970年01月01日 00:00:00 距離當前時間,以秒爲單位的總時間
  • Format String 格式化時間: 已格式化的結構使時間更具可讀性。包括自定義格式和固定格式。可用於拼接用戶時間格式並保存使用orm

  • struct_time 格式化時間對象:時間元組,元組中有9個元素組,分別表明:年、月、日、時、分、秒、一週的第幾天(0-6),一年的第幾天,是否爲夏令時(-1)對象

時間格式轉換圖blog

時間格式轉換圖

注意:格式化時間轉化爲時間戳,再轉化爲格式化時間時,gmtime()和localtime()結果可能會相差一天table

緣由:gmtime轉出來的是格林威治標準時間,localtime是將時區考慮在內了class

import time

# time() 獲取當前時間戳
timestamp1 = time.time()
print(f"當前時間戳:{timestamp1}")  # 輸出結果:1573889052.7453291

# 獲取當前年月日(yyyy-MM-dd)
str_day = time.strftime("%Y-%m-%d")
print(f"格式化後的年月日:{str_day}")  # 輸出結果:2019-11-16
# 獲取當前年月日時分秒(yyyy-MM-dd hh:mm:ss)
# %X 和 %H:%M:%S 效果是同樣的
str_time = time.strftime("%Y-%m-%d %H:%M:%S")
str_time1 = time.strftime("%Y-%m-%d %X")  # 建議使用這種
print(f"[%H:%M:%S]格式化後的年月日時分秒:{str_time}")
# 輸出結果:2019-11-16 15:24:12
print(f"[%X]格式後的年月日時分秒:{str_time1}")
# 輸出結果:2019-11-16 15:24:12

# localtime() 獲取當前時區時間對象,東八區(北京時間)
time_obj = time.localtime()
print(f"localtime獲取的時間對象:{time_obj}")
# gmtime() 獲取格林威治時間對象
time_obj2 = time.gmtime()
print(f"gmtime獲取的時間對象:{time_obj2}")

# 時間戳轉換成時間對象 localtime/gmtime
struct_stamp = time.localtime(time.time())
struct_stamp2 = time.gmtime(time.time())
print(f"localtime:{struct_stamp}")
print(f"gmtime:{struct_stamp2}")

# mktime() 將時間對象轉換成時間戳
stamp_mk = time.mktime(time.localtime())
print(f"當前時間對象:{stamp_mk}")

# 格式化時間轉換成時間對象 strptime
struct_for = time.strptime("2019-10-22", "%Y-%m-%d")
print(f"strptime:{struct_for}")

# 時間戳轉換成格式化時間 ctime
res = time.ctime(1573888219)
print(res)  # 固定的時間格式:Sat Nov 16 15:10:19 2019

# 時間對象轉換成格式化時間 asctime
# 2019-09-18 17:23:34 後續3個數字隨意輸入的
tup_time = (2019, 9, 18, 17, 23, 34, 1, 3, 14)
res_time = time.asctime(tup_time)
print(res_time)  # 固定的時間格式:Tue Sep 18 17:23:34 2019
  • strftime的格式碼
格式 含義
%Y 年份,例:2019
%m 月份,格式爲XX,[01-12]
%d 天,格式爲XX, [01,31].
%H 時,24小時制, [00,23].
%M 分, [00,59].
%S 秒 [00,61]. 60是閏秒,61因歷史緣由保留

datetime模塊import

import datetime

# 獲取當前年月日
print(datetime.date.today())

# 獲取當前年月日時分秒
print(datetime.datetime.today())

# datetime.datetime.today() 獲取的是一個時間對象
time_obj = datetime.datetime.today()
print(f"年:{time_obj.year}")
print(f"月:{time_obj.month}")
print(f"日:{time_obj.day}")

'''
日期/時間的計算
    日期時間 = 日期時間 「+」 or 「-」 時間對象
    時間對象 = 日期時間 「+」 or 「-」 日期時間
'''
# 當前時間
current_time = datetime.datetime.now()
# timedelta:日期時間間隔對象
time_object = datetime.timedelta(days=7)
# 獲取7天以後的時間
later_time = current_time + time_object
print(later_time)

# 日期/時間 之間計算,返回時間對象
timestamp = current_time - later_time
print(timestamp)
相關文章
相關標籤/搜索