python關於時間的計算,time模塊


 

import time, datetime

# 時間的幾種格式:
# 一:時間戳(timestamp),1970年1月1日0點開始,到現在的秒數(以格林尼治時間為准)。
# 數據類型為'float',浮點數,小數
print('時間戳')
print('當前時間')
print(time.time())
print(type(time.time()))
print('=========================================')

# 二:時間元組(Time tuple(time obj)),這是把年月日時分秒周日……作為一個元組
# 數據類型為‘time.struct_time’,元組
print('時間元組')
print('當前時間')
print(time.localtime())
print(type(time.localtime()))
print('年是0位:' + str(time.localtime()[0]))
print('月是1位:' + str(time.localtime()[1]))
print('日是2位:' + str(time.localtime()[2]))
print('時是3位:' + str(time.localtime()[3]))
print('分是4位:' + str(time.localtime()[4]))
print('秒是5位:' + str(time.localtime()[5]))
print('周幾是6位:' + str(time.localtime()[6]))
print('第幾天是7位:' + str(time.localtime()[7]))
print('夏令時是8位,但是沒用:' + str(time.localtime()[8]))
print('-----')
print('年是0位:' + str(time.localtime().tm_year))
print('月是1位:' + str(time.localtime().tm_mon))
print('日是2位:' + str(time.localtime().tm_mday))
print('時是3位:' + str(time.localtime().tm_hour))
print('分是4位:' + str(time.localtime().tm_min))
print('秒是5位:' + str(time.localtime().tm_sec))
print('周幾是6位:' + str(time.localtime().tm_wday))
print('第幾天是7位:' + str(time.localtime().tm_yday))
print('夏令時是8位,但是沒用:' + str(time.localtime().tm_isdst))
print('=========================================')
# 三:時間格式(Datetime obj),最准確的時間格式,還帶毫秒
# 類型為'datetime.datetime'
print('時間格式')
print('當前時間')
print(datetime.datetime.now())
print(type(datetime.datetime.now()))

print('=========================================')
# 四:時間字符串(string),就是字符串而已
# 數據類型為‘str’,字符串
print('字符串格式')
print('當前時間')
now = time.strftime('%Y%m%d%H%M%S')
# % y 兩位數的年份表示(00 - 99)
# % Y 四位數的年份表示(000 - 9999)
# % m 月份(01 - 12)
# % d 月內中的一天(0 - 31)
# % H 24小時制小時數(0 - 23)
# % I 12小時制小時數(01 - 12)
# % M 分鍾數(00 = 59)
# % S 秒(00 - 59)
# % a 本地簡化星期名稱
# % A 本地完整星期名稱
# % b 本地簡化的月份名稱
# % B 本地完整的月份名稱
# % c 本地相應的日期表示和時間表示
# % j 年內的一天(001 - 366)
# % p 本地A.M.或P.M.的等價符
# % U 一年中的星期數(00 - 53)星期天為星期的開始
# % w 星期(0 - 6),星期天為星期的開始
# % W 一年中的星期數(00 - 53)星期一為星期的開始
# % x 本地相應的日期表示
# % X 本地相應的時間表示
# % Z 當前時區的名稱
# % % % 號本身
print(now)
print('=========================================')
# 時間字符串,就是一個字符串,不方便進行計算,首先棄用。
# 時間戳,是個浮點數,也不方便進行計算,也棄用。
# 時間元組,是個元組,不能直接存入數據庫,還是棄用。
# 時間格式,這是最基本的格式,優先選用。
# time模塊,是以時間戳為基礎的。
# datetime模塊,是以時間格式為基礎的。
# 首先講定制時間
# 指定時間
# 其實看置頂圖,左右是時間格式,上面是字符串,下面是時間戳
# 想指定時間,就需要從字符串或時間戳轉換過去,時間戳還要計算,我們一般用字符串轉換為時間格式。
print('指定時間')
print('datetime指定時間,datetime格式,圖上datetime.datetime.strptime(str,format)')
# 可以設置7個參數來指定時間
S_datetime = datetime.datetime(2019, 10, 29, 21, 39, 2, 21111)
print(S_datetime)
# 可以精簡為3個參數
S_datetime = datetime.datetime(2019, 10, 28)
print(S_datetime)
print(type(S_datetime))
print('time指定時間,time時間格式(元組),圖上time.strptime(str,format)')
S_time = time.strptime('2019102921392', '%Y%m%d%H%M%S')
print(S_time)
S_time = time.strptime('20191029', '%Y%m%d')
print(S_time)
# 甚至可以精簡到2個參數
S_time = time.strptime('201910', '%Y%m')
print(S_time)
S_time = time.strptime('2019年10月29日21時39分2秒', '%Y年%m月%d日%H時%M分%S秒')
print(S_time)
print(type(S_time))

print('=========================================')

# 再轉換回去
# datetime轉換為字符串,圖上dt_obj.strftime()
print('時間格式轉換為字符串')
print('datetime時間格式轉換為字符串,圖上dt_obj.strftime()')
print(S_datetime)
print(type(S_datetime))
D_str = S_datetime.strftime('%Y-%m-%d %H:%M:%S %f')
print(D_str)
D_str = S_datetime.strftime('%Y%m%d%H%M%S%f')
print(D_str)
print(type(D_str))
print('time時間格式轉換為字符串,圖上time.strftime(format,t_tp)')
print(S_time)
print(type(S_time))
T_str = time.strftime('%Y%m%d%H%M%S', S_time)
print(T_str)
T_str = time.strftime('%Y-%m-%d %H:%M:%S', S_time)
print(T_str)
print('=========================================')
# 時間元組和時間格式互轉
print('時間格式和時間元組互轉')
print(S_time)
print(type(S_time))
print(S_datetime)
print(type(S_datetime))

print('時間格式轉時間元組,圖上dt_obj.timetuple()')
T_D = S_datetime.timetuple()
print(T_D)
print('++++++++')
print('時間元組轉時間格式,圖上datetime.datetime(t_tp)')#待更新
D_T=datetime.datetime(S_time.tm_year,S_time.tm_mon,S_time.tm_mday)
print(D_T)

print('=========================================')
#時間戳待更新,暫時用的不多。


print('字符串轉時間戳,分兩步')
string_2_struct = time.strptime("2016/05/22", "%Y/%m/%d")  # 將 日期字符串 轉成 struct時間對象格式
print(string_2_struct)
struct_2_stamp = time.mktime(string_2_struct)  # 將struct時間對象轉成時間戳
print(struct_2_stamp)
print('--------')

# # time.clock用於計算執行時間
# t0 = time.clock()  # 第一次調用time.clock,標記一個時間為0.0
# time.sleep(2)
# t1 = time.clock()  # 第二次調用,從第一個time.clock開始到現在的時間
# time.sleep(2)
# t2 = time.clock()  # 第三次調用,從第一個time.clock開始到現在的時間
# print(t0)
# print(t1)
# print(t2)
# print(t1 - t0)
# print(t2 - t1)
# print(t2 - t0)

# time.sleep(5)#以秒為單位暫停

# 以下字符串方便用來存記錄,
now_time = time.strftime('%Y-%m-%d %H:%M:%S')  # 20171123093804  當前時間
print(now_time)
print(type(now_time))  # 格式是字符串
print('----------')
now = str(datetime.datetime.now())
print(now)
print(type(now))  # 格式是字符串 帶毫秒的
print('----------')
today = time.strftime('%Y%m%d')  # 20171123 當前日期
print(today)
print(type(today))  # 格式是字符串
print('----------')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM