Python標準庫time使用方式詳解
1、time庫
- 時間戳(timestamp)的方式:通常來說,時間戳表示的是從1970年1月1日00:00:00開始按秒計算的偏移量
- 結(jié)構(gòu)化時間(struct_time)方式:struct_time元組共有9個元素
- 格式化的時間字符串(format_string),時間格式的字符串
1.1、獲取格林威治西部的夏令時地區(qū)的偏移秒數(shù)
- 如果該地區(qū)在格林威治東部會返回負值(如西歐,包括英國)
- 對夏令時啟用地區(qū)才能使用
# coding:utf-8 import time # 獲取格林威治西部的夏令時地區(qū)的偏移秒數(shù)。 print(time.altzone)
1.2、時間函數(shù)
- 時間戳
指格林威治時間1970年01月01日00時00分00秒(北京時間1970年01月01日08時00分00秒)起至現(xiàn)在的總秒數(shù) - 時間元組
用一個元組裝起來的9組數(shù)字
字段 | 含義 | 值 |
tm_year | 4位數(shù)年 | 2008 |
tm_mon | 月 | 1 到 12 |
tm_mday | 日 | 1 到 31 |
tm_hour | 小時 | 0 到 23 |
tm_min | 分鐘 | 0 到 59 |
tm_sec | 秒 | 0 到 61(60或61 是閏秒) |
tm_wday | 一周的第幾日 | 0 到 6(0是周一) |
tm_yday | 一年的第幾日 | 1 到 366(儒略歷) |
tm_isdst | 夏令時 | -1, 0, 1 是決定是否為夏令時的旗幟 |
# coding:utf-8 import time # 返回當前時間的時間戳(1970紀元后經(jīng)過的浮點秒數(shù)) print(time.time()) # 接收時間戳返回一個24個定長可讀形式的字符串 print(time.ctime()) # Thu Jul 7 20:17:14 2022 print(len(time.ctime()), type(time.ctime())) # 24 <class 'str'> # 接收時間戳(1970紀元后經(jīng)過的浮點秒數(shù))并返回當?shù)貢r間下的時間元組 print(time.localtime()) print(time.localtime(time.time())) # 接收時間戳(1970紀元后經(jīng)過的浮點秒數(shù))并返回格林威治天文時間下的時間元組 print(time.gmtime()) print(time.gmtime(time.time())) # 接收時間元組并返回一個可讀的形式為"Thu Jul 7 20:11:04 2022"(2022年7月7日 周四20時11分04秒)的字符串,長度固定為24字符 print(time.asctime()) print(time.asctime(time.gmtime())) print(time.asctime(time.localtime())) print(len(time.asctime()), type(time.asctime())) # 24 <class 'str'> # 接受時間元組并返回時間戳(1970紀元后經(jīng)過的浮點秒數(shù)) # print(time.mktime()) # 參數(shù)不可為空 TypeError: time.mktime() takes exactly one argument (0 given) print(time.mktime(time.gmtime())) print(time.mktime(time.localtime())) print(type(time.mktime(time.gmtime()))) # 浮點秒數(shù)<class 'float'> # 返回以秒為單位的時間浮點值 print(time.perf_counter()) print(type(time.perf_counter())) # 返回以納秒為單位的時間整數(shù)值 print(time.perf_counter_ns()) # <class 'float'> print(type(time.perf_counter_ns())) # <class 'int'>
1.3、格式化時間、日期
- 時間格式,格式化日期和時間時使用
格式符號 | 符號的含義 |
%y | 兩位數(shù)的年份表示(00-99) |
%Y | 四位數(shù)的年份表示(000-9999) |
%m | 月份(01-12) |
%d | 月內(nèi)中的一天(0-31) |
%H | 24小時制小時數(shù)(0-23) |
%I | 12小時制小時數(shù)(01-12) |
%M | 分鐘數(shù)(00-59) |
%S | 秒(00-59) |
%a | 本地簡化星期名稱 |
%A | 本地完整星期名稱 |
%b | 本地簡化的月份名稱 |
%B | 本地完整的月份名稱 |
%c | 本地相應(yīng)的日期表示和時間表示 |
%j | 年內(nèi)的一天(001-366) |
%p | 本地A.M.或P.M.的等價符 |
%U | 一年中的星期數(shù)(00-53)星期天為星期的開始 |
%w | 星期(0-6),星期天為 0,星期一為 1,以此類推。 |
%W | 一年中的星期數(shù)(00-53)星期一為星期的開始 |
%x | 本地相應(yīng)的日期表示 |
%X | 本地相應(yīng)的時間表示 |
%Z | 當前時區(qū)的名稱 |
%% | %號本身 |
# coding:utf-8 import time import datetime # 格式化日期 print(time.strftime('%Y-%m-%d %H:%M:%S')) print(time.strftime('%Y-%m-%d %I:%M:%S')) print(time.strftime('%X')) print(time.strftime('%Z')) # 將字符串轉(zhuǎn) 時間元組 # '%a %b %d %H:%M:%S %Y' print(time.strptime('2022-07-07 09:58:24', '%Y-%m-%d %H:%M:%S')) print(time.strptime('2022-07-07 09:58:24', '%Y-%m-%d %I:%M:%S'))
1.4、單調(diào)時鐘
- 單調(diào)時鐘是不能向后移動的時鐘
- 常用來計算程序運行處理時長
# coding:utf-8 import time # 獲取 單調(diào)時鐘的值,單調(diào)時鐘是不能向后移動的時鐘 # 常用來計算程序運行處理時長 start_time = time.monotonic() i = 0 print(f"循環(huán)開始時鐘值:{start_time}", type(start_time)) # 循環(huán)開始時鐘值:6718828000000 <class 'int'> while i <= 10: time.sleep(0.1) i += 1 end_time = time.monotonic() print(f"循環(huán)結(jié)束時鐘值:{end_time}") print(f"循環(huán)運行時間為:{end_time - start_time} 秒") # 獲取單調(diào)時鐘的值 以納秒計算 start_time_ns = time.monotonic_ns() i = 0 print(f"循環(huán)開始時鐘值:{start_time_ns}", type(start_time_ns)) # 循環(huán)開始時鐘值:6718828000000 <class 'int'> while i <= 10: time.sleep(0.1) i += 1 end_time_ns = time.monotonic_ns() print(f"循環(huán)結(jié)束時鐘值:{end_time_ns}") print(f"循環(huán)運行時間為:{end_time_ns - start_time_ns} 納秒") # 返回以秒為單位的時間浮點值,用法同time.monotonic() print(time.perf_counter()) print(type(time.perf_counter())) # 返回以納秒為單位的時間整數(shù)值,用法同time.monotonic_ns() print(time.perf_counter_ns()) # <class 'float'> print(type(time.perf_counter_ns())) # <class 'int'> # 返回當前系統(tǒng)時間與CPU時間的浮動值(以秒為單位) print(time.process_time()) # 返回當前系統(tǒng)時間與CPU時間的浮動值(以納秒為單位) print(time.process_time_ns()) # 睡眠,參數(shù)的單位為秒 time.sleep(1) # 程序等待1秒鐘后再執(zhí)行
到此這篇關(guān)于Python標準庫time使用方式詳解的文章就介紹到這了,更多相關(guān)Python標準庫time 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python RabbitMQ 使用詳細介紹(小結(jié))
這篇文章主要介紹了python RabbitMQ 使用詳細介紹(小結(jié)),詳細的介紹了RabbitMQ的概念以及使用,對學(xué)習(xí)RabbitMQ有一定的幫助,非常具有實用價值,需要的朋友可以參考下2018-11-11PyTorch梯度裁剪避免訓(xùn)練loss nan的操作
這篇文章主要介紹了PyTorch梯度裁剪避免訓(xùn)練loss nan的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05