相关文章推荐
精明的蘑菇  ·  TypeError:“datetime.da ...·  7 月前    · 
魁梧的拖把  ·  【Python 库】requests ...·  8 月前    · 
温暖的啄木鸟  ·  Android R ...·  4 月前    · 
冷冷的茄子  ·  Mybatis【13】-- ...·  1 年前    · 
火爆的沙滩裤  ·  java - ...·  1 年前    · 

python time, datetime 各种时间格式转换

记录python中time,datetime模块,常用的时间格式转换。

一、time模块

1. 获取当前时间

import time
now = time.localtime()
print(time.strftime("%Y-%m-%d %H:%M:%S",now))
now

运行结果:

2022-09-08 14:40:44
time.struct_time(tm_year=2022, tm_mon=9, tm_mday=8, tm_hour=14, tm_min=40, tm_sec=44, tm_wday=3, tm_yday=251, tm_isdst=0)

改变时间显示格式:

time.strftime("%Y%m%d")

运行结果:

'20220908'

2. 获取当前时间戳

timestamp = time.time()
timestamp

运行结果:

1662620870.4264786

3. 时间戳转日期

timestamp = 1662620870
time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(timestamp))

运行结果:

'2022-09-08 15:07:50'

4. 日期转时间戳

date = "2022-09-08 15:07:50"
timeArray = time.strptime(date, "%Y-%m-%d %H:%M:%S")
timestamp = int(time.mktime(timeArray))
timestamp

运行结果:

1662620870

5. 计算时间差

import time
start = time.time()
print("start time: ",time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(start)))
time.sleep(5)
end = time.time()
print("end time: ",time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(end)))
time_diff = int(end - start)
print(f"time diff: {time_diff} s")

运行结果:

start time:  2022-09-08 15:15:45
end time:  2022-09-08 15:15:50
time diff: 5 s

二、datetime模块

1. 获取当前时间

import datetime
now = datetime.datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))
now

运行结果:

2022-09-08 15:28:24
datetime.datetime(2022, 9, 8, 15, 28, 24, 78075)

或者

today = datetime.datetime.today()
today

运行结果:

datetime.datetime(2022, 9, 8, 15, 29, 20, 337346)

2. 获取当前时间戳

now = datetime.datetime.now()
now.timestamp()

运行结果:

1662622212.511335

或者

import time
import datetime
now = datetime.datetime.now()
timestamp = time.mktime(now.timetuple())
timestamp

运行结果:

1662622618.0

3. 时间戳转日期

timestamp = 1662622618
date = datetime.datetime.fromtimestamp(timestamp)
date.strftime("%Y-%m-%d %H:%M:%S")

运行结果:

'2022-09-08 15:36:58'

4. 日期转时间戳

date = "2022-09-08 15:36:58"
datetime.datetime.strptime(date, "%Y-%m-%d %H:%M:%S").timestamp()

运行结果:

1662622618.0

5. 计算时间差

import time
import datetime
start = datetime.datetime.now()
print("start time: ", start)
time.sleep(5)
end = datetime.datetime.now()
print("end time: ", end)
time_diff = (end - start).seconds
print(f"time diff: {time_diff} s")

运行结果:

start time:  2022-09-08 15:54:17.616968
end time:  2022-09-08 15:54:22.633349
time diff: 5 s

6. 当前时间,向前/向后N天

N = 2 # 前N天
date = "20220908"
last_N_day = datetime.datetime.strptime(date, "%Y%m%d") - datetime.timedelta(days=N)