記錄下,以備不時之需(網上找了好久,才找個這個比較滿意的)
import time def get_day_begin(ts=time.time(), N=0): """ N為0時獲取時間戳ts當天的起始時間戳,N為負數時前數N天,N為正數是后數N天 24 時(小時)=86400 000 毫秒 """ return int(time.mktime(time.strptime(time.strftime('%Y-%m-%d', time.localtime(ts)), '%Y-%m-%d'))) + 86400 * N def get_week_begin(ts = time.time(),N = 0): """ N為0時獲取時間戳ts當周的開始時間戳,N為負數時前數N周,N為整數是后數N周,此函數將周一作為周的第一天 """ w = int(time.strftime('%w',time.localtime(ts))) return get_day_begin(int(ts - (w-1)*86400)) + N*604800 t=time.time() print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(get_week_begin(t,0)))) print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(get_week_begin(t,1))))
輸出結果:
2020-12-28 00:00:00
2021-01-04 00:00:00
#來源鏈接 https://www.oschina.net/code/snippet_46178_13435