datetime 与 time 的使用
☺结构化时间是中间桥梁,时间字符串需要先转为结构化时间再转为时间戳,反之亦然
datetime 使用
datetime 获取当前时间
import datetime
datetime.datetime.now()
# 输出年、月、日、时、分、秒、微秒
> datetime.datetime(2023, 3, 18, 11, 37, 16, 331951)
返回结构化时间对象,具有以下属性:
year
month
day
hour
minute
second
microsecond
可以通过.获取每个属性值,如: datetime.datetime.now().year
datetime.datetime.now().year
> 2023
datetime.datetime.now().month
> 3
datetime将日期转为时间字符串
dt = datetime.datetime.now()
dt.strftime('%Y-%m-%d %H:%M:%S')
> '2023-03-18 11:50:35'
# 指定转换日期
dt = datetime.datetime(2022, 9, 17)
dt.strftime('%Y-%m-%d %H:%M:%S')
> '2022-09-17 00:00:00'
# 修改字符串格式
dt = datetime.datetime(2022, 9, 17)
dt.strftime('%Y%m%d')
> '20220917'
datetime将日期转换为时间戳
dt = datetime.datetime(2022, 9, 17) # 指定日期
dt.timestamp()
> 1663344000.0
datetime将时间字符串转为时间戳
c = datetime.datetime.strptime('20220916', '%Y%m%d') # 先将字符串转为datetime对象
datetime.datetime.timestamp(c) # 将datetime对象转为时间戳
> 1663257600.0
datetime将时间戳转为时间字符串
d = datetime.datetime.fromtimestamp(1663257600.0) # 先将时间戳转为datetime对象
> datetime.datetime(2022, 9, 16, 0, 0)
datetime.datetime.strftime(d, '%Y%m%d') # 再将datetime对象转为时间字符串
> '20220916'
time 使用
time获取当前时间
import time
time.time() # 获取当前时间的时间戳
> 1663398344.2743688
time.localtime() # 获取到当前时间的struct_time
> time.struct_time(tm_year=2023, tm_mon=3, tm_mday=18, tm_hour=14, tm_min=30, tm_sec=52, tm_wday=5, tm_yday=77, tm_isdst=0)
time将时间戳转换为时间字符串
strftime将结构化时间转为字符串
time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
> '2022-09-17 15:11:15'
time.strftime('%Y%m%d', time.localtime())
> '20220917'
time将时间字符串转为时间戳
time.strptime('20220917', '%Y%m%d') # 先将时间字符串转为结构化时间,'20220917'-->
> time.struct_time(tm_year=2022, tm_mon=9, tm_mday=17, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=260, tm_isdst=-1)
# 或者
time.strptime('2022-09-17 15:15:15', '%Y-%m-%d %H:%M:%S') # 先将时间字符串转为结构化时间,'2022-09-17 15:15:15'-->
> time.struct_time(tm_year=2022, tm_mon=9, tm_mday=17, tm_hour=15, tm_min=15, tm_sec=15, tm_wday=5, tm_yday=260, tm_isdst=-1)
time.mktime(time.strptime('20220917', '%Y%m%d')) # 将结构化时间转为时间戳
> 1663344000.0
将时间戳转为结构化时间
time.localtime(1663344000.0)
> time.struct_time(tm_year=2022, tm_mon=9, tm_mday=17, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=260, tm_isdst=0)