当前位置: 代码迷 >> 综合 >> Python之datetimem模块日期操作,日期与时间戳相互转换
  详细解决方案

Python之datetimem模块日期操作,日期与时间戳相互转换

热度:58   发布时间:2024-03-06 05:29:34.0

在实际应用开发中,往往会涉及很多的日期的操作及日期与时间戳的相互转换,如:

  • 记录用户的操作时间如评论时间,下单时间,发表文件时间等
  • 记录某些功能的执行时间
  • 一些日志的记录
  • 其他

在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)# 减时间把上面+改成减即可
# 格式化日期或时间戳可根据④中代码转换即可

至此涵盖了一些常用的操作,掌握后可应对大部分开发了。

  相关解决方案