1、datetime模塊
對日期、時間、時間戳的處理
1> datetime類
類方法:沒有時間對象使用類的方法構造時間對象
today() 返回本地時區當前時間的datetime對象
now(tz=None) 返回當前時間的datetime對象,時間到微秒,如果tz為None,返回和 today() 一樣
utcnow() 沒有時區的當前時間
fromtimestamp(timestamp, tz=None) 從一個時間戳返回一個datetime對象
datetime對象:有時間對象調用時間戳返回時間戳
timestamp() 返回一個到微秒的時間戳
時間戳:格林威治時間1970年1月1日0點到現在的秒數
import datetime print(type(datetime.datetime)) #類 執行結果: <class 'type'>
import datetime print(datetime.datetime.now()) #類的方法,返回一個當前時區時間的對象 print(datetime.datetime.today()) #中國:東八區,和沒有時區的時間差8個小時 print(datetime.datetime.utcnow()) #沒有時區的時間 執行結果: 2020-04-08 18:15:34.319195 2020-04-08 18:15:34.319196 2020-04-08 10:15:34.319195
import datetime d1 = datetime.datetime.now() print(d1) print(d1.timestamp()) #返回一個到微妙的時間戳 print(datetime.datetime.fromtimestamp(1586341355)) #從一個時間戳返回datetime對象 執行結果: 2020-04-08 18:22:52.348085 1586341372.348085 2020-04-08 18:22:35
2> datetime對象
構造方法datetime.datetime(2016, 12, 6, 16, 29, 43, 79043)
year、month、day、hour、minute、second、microsecond,取datetime對象的年月日時分秒及微秒
weekday() 返回星期的天,周一0,周日6
isoweekday() 返回星期的天,周一1,周日7
date() 返回日期date對象
time() 返回時間time對象
replace() 修改並返回新的時間
isocalendar() 返回一個三元組(年,周數,周的天)
import datetime d = datetime.datetime(2020,1,1,12,12,12) print(d) print(d.year,d.month) print(d.weekday()) #返回星期:0-6 print(d.isoweekday()) #返回星期:1-7 print(d.date()) #2020-01-01 print(d.time()) #12:12:12 print(d.replace(2017)) #返回全新的時間對象 print(d.isocalendar()) #返回一個三元組(年,周數,周的天) 執行結果: 2020-01-01 12:12:12 2020 1 2 3 2020-01-01 12:12:12 2017-01-01 12:12:12 (2020, 1, 3)
import datetime d = datetime.datetime(2019,12,12,12,12,12) print(d) d1 = d.replace(d.year-10,5,5) print(d1) d2 = datetime.datetime(d1.year,d1.month,d1.day) print(d2) 執行結果: 2019-12-12 12:12:12 2009-05-05 12:12:12 2009-05-05 00:00:00
2、日期格式化
類方法strptime(date_string, format),返回datetime對象
對象方法strftime(format),返回字符串
字符串format函數格式化
import datetime d = datetime.datetime.strptime("2020,1,1,12,12,12","%Y,%m,%d,%H,%M,%S") #字符串 ——> 時間對象 print(d) d1 = datetime.datetime(2020,2,2,5,5,5) d2 = d1.strftime("%Y-%m-%d %H:%M:%S") #時間對象 ——> 字符串 print(d2) 執行結果: 2020-01-01 12:12:12 2020-02-02 05:05:05 2020-02-02 05:05:05
import datetime d = datetime.datetime.strptime("2020,1,1,12,12,12","%Y,%m,%d,%H,%M,%S") print("{0:%Y}/{0:%m}/{0:%d} {0:%H}:{0:%M}:{0:%S}".format(d)) print('{:%Y-%m-%d %H:%M:%S}'.format(d)) 執行結果: 2020/01/01 12:12:12 2020-01-01 12:12:12
3、timedelta對象
datetime2 = datetime1 + timedelta
datetime2 = datetime1 - timedelta
timedelta = datetime1 - datetime2
構造方法:
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
year = datetime.timedelta(days=365)
total_seconds()返回時間差的總秒數
import datetime d = datetime.datetime(2020,1,1,1,1,1) d1 = d + datetime.timedelta(days=10) print(d1) print(datetime.timedelta(days=365).total_seconds()) 執行結果: 2020-01-11 01:01:01 31536000.0
4、標准庫time
time
time.sleep(secs)將調用線程掛起指定的秒數
import time time.sleep(5) #掛起線程5秒,之后print('_____') print('_____')
