在实际应用开发中,往往会涉及很多的日期的操作及日期与时间戳的相互转换,如:
- 记录用户的操作时间如评论时间,下单时间,发表文件时间等
- 记录某些功能的执行时间
- 一些日志的记录
- 其他
在Python中提供了一些内置模块用于操作日期操作和转换,time模块与datetime模块,其中datetime模块是对time模块的重新封装,所以建议使用datetime模块。
①获取当前日期与时间戳
from datetime import datetime
# 构造一个datetime对象
now_time = datetime.now()
# 格式化时间字符串,输出格式化后的当前日期字符串,下面的格式为 2020-10-19 15:16:20
date_time = now_time.strftime('%Y-%m-%d %H:%M:%S')
# 获得当前的时间戳
timer = now_time.timestamp()
②常见的获取日期的其他信息
from datetime import datetime
# 以当前时间构造一个datetime对象
now_time = datetime.now()
# 获取年份
year = now_time.year
# 获取月份
month = now_time.month
# 获取日期
day = now_time.day
# 获取小时
hour = now_time.hour
# 获取分钟
minute = now_time.minute
# 获取秒
second = now_time.second
# 返回星期几,其中星期一==0 星期二==1 ... 星期日==6
week = now_time.weekday()
# 返回星期几,其中星期一==1 星期二==2 ... 星期日==7
week = now_time.isoweekday()
# 返回一个元组,表示当前datetime对象的年,该年过了多少周,该周的第几天
print(now_time.isocalendar())
③根据指定日期转成时间戳
from datetime import datetime
# 指定日期
date_time = '2020-10-19 15:16:26'
# 根据指定日期构造一个datetime对象
date_obj = datetime.fromisoformat(date_time)
# 返回时间戳,如果想精确到秒,可转换成int类型
timer = date_obj.timestamp()
④根据时间戳转成日期字符串
from datetime import datetime
# 指定时间戳
timer = 1603954865
# 根据时间戳构造datetime对象
date_obj = datetime.fromtimestamp(timer)
# 格式化日期字符串
date = date_obj.strftime('%Y-%m-%d %H:%M:%S')
⑤时间的加减
from datetime import datetime, timedelta
# datetime对象
now_time = datetime.now()
# 加多少天
now_time += timedelta(days=1)
# 加多少秒
now_time += timedelta(seconds=300)
# 加多少小时
now_time += timedelta(hours=1)
# 加多少分钟
now_time += timedelta(minutes=1)
# 减时间把上面+改成减即可
# 格式化日期或时间戳可根据④中代码转换即可
至此涵盖了一些常用的操作,掌握后可应对大部分开发了。