在将数据存储于MySQL、Oracle等时,对时间的操作会比较频繁,比如,数据第一次保存于数据库的时间(create_time),数据的更新时间(update_time),查询某个时间等等。在对时间进行操作时,往往会涉及到时间、日期、时间戳之间的各种转换,下面简单介绍几个常用的转换方法。

1、用到的模块
用到的模块有两个:time模块和datetime模块

import time,datetime

2、获取不同要求的时间(字符串格式)

from datetime import datetime, timedeltatoday = datetime.now()  # 今天
yesterday = today - timedelta(days=1)  # 昨天
last_year_today = datetime(today.year - 1, today.month, today.day)  # 去年今天
if today.month == 1:last_month_today = datetime(today.year - 1, 12, today.day, )  # 上月今日
else:last_month_today = datetime(today.year, today.month - 1, today.day, )  # 上月今日print(f'当前时间是:{today}')
print(f'昨天当前时间是:{yesterday}')
print(f'去年今天是:{last_year_today}')
print(f'上月今日是:{last_month_today}')

运行结果:

当前时间是:2022-03-06 17:18:06.242593
昨天当前时间是:2022-03-05 17:18:06.242593
去年今天是:2021-03-06 00:00:00
上月今日是:2022-02-06 00:00:00

3、获取当前时间(指定时间)往前n天的日期

def get_week_day(week):week_day_dict = {0: '一',1: '二',2: '三',3: '四',4: '五',5: '六',6: '日',}day = week.weekday()return week_day_dict[day]date0 = '2022-04-06'  # 指定日期
print(f"当期日期为{date0}")
n = -185  # 当前日期前n天
# 将字符串格式的日期转换为datetime.datetime格式,用来判断是周几
date_ori = datetime.strptime(date0, '%Y-%m-%d')
date_n = (date_ori + timedelta(days=n)).strftime("%Y-%m-%d")  # 获取当前日期的前n天日期
print(f"当前日期{date0}的前{abs(n)}天的日期:{date_n}")
print(f'当前日期{date0}的前{abs(n)}天是周{get_week_day(date_ori)}\n')

运行结果

当期日期为2022-04-06
当前日期2022-04-06的前185天的日期:2021-10-03
当前日期2022-04-06的前185天是周三

4、更改周的起始时间,并获取前n周的起始时间

def getNWeeksBefore(today, n):ywd = today.isocalendar()  # (year,week,周几)--得要计算的日期是周几# 可以根据需要改变判断条件(改变周的起始时间)if ywd[2] < 6:last_week_end_day = today + timedelta(days=-(ywd[2] + 2))  # 上周的最后一天(周五)else:last_week_end_day = today + timedelta(days=-(ywd[2] - 5))log.info(f'以周六为一周的第一天标准下,上周最后一天是:{last_week_end_day}')# 周历史数据,往前倒26周的第一天start_day_before26 = last_week_end_day + timedelta(days=(-(n - 1) * 7 - 6))return start_day_before26, last_week_end_day# 将字符串格式的日期转换为datetime.datetime格式,用来判断是周几
date_ori = datetime.strptime(date0, '%Y-%m-%d')# 当前日期前26周的第一天和上周的最后一天
start_day_before26, last_week_end_day = getNWeeksBefore(date_ori, 26)
print(start_day_before26, last_week_end_day)

运行结果

以周六为一周的第一天标准下,上周最后一天是:2022-04-01 00:00:002021-10-02 00:00:00 2022-04-01 00:00:00

python对时间的灵活处理相关推荐

  1. 1、Python 日期时间格式化输出

    今天帮朋友写自动化脚本,又需要用格式化日期,又忘记怎么写了,还是写到自己博客里面,方便日后需要的时候看一眼吧.So,临时加一篇 Python 的文章. 1.Python的time模块 import t ...

  2. python按时间排序 文件

    python按时间排序目录下的文件 python文件夹遍历,文件操作,获取文件修改创建时间可以参考另一篇博客.  如:  os.path.getmtime() 函数是获取文件最后修改时间  os.pa ...

  3. python自学时间-学习Python、Python时间操作有哪些?

    一.背景知识介绍: 1.时间是人类规定的产物,与长度单位是一个道理,米这个单位也是人类发明的.简单说就是地球自转1圈为1天,地球饶太阳公转1圈为1年,而且根据公转自转度量时间都是不可靠的(因为非匀速无 ...

  4. scrapy笔记——python的时间转换

    1 import datetime 2 GMT_FORMAT = '%M %H %d %m %w' 3 datetime.datetime.utcnow().strftime(GMT_FORMAT) ...

  5. Python 日期时间函数

    所有日期.时间的api都在datetime模块内. 1. 日期输出格式化 datetime => string import datetime now = datetime.datetime.n ...

  6. 【Python机器学习时间指南】一、Python机器学习的生态系统

    本文主要记录<Python机器学习时间指南>第一章中1.2Python库和功能中的内容.学习机器学习的工作流程. 一.数据的获取和检查 requests获取数据 pandans处理数据 1 ...

  7. Python语言学习之时间那些事:python和时间的使用方法之详细攻略

    Python语言学习之时间那些事:python和时间的使用方法之详细攻略 目录 python和时间那些事 1.获取当前时间的几种方法 2.计算代码前后运行时间 python和时间那些事 1.获取当前时 ...

  8. 【转载】Python日期时间模块datetime详解与Python 日期时间的比较,计算实例代码

    本文转载自脚本之家,源网址为:https://www.jb51.net/article/147429.htm 一.Python中日期时间模块datetime介绍 (一).datetime模块中包含如下 ...

  9. anaconda使用python写游戏,python娱乐时间:Anaconda方式搭建python开发环境

    前言python是解释型语言,源码是普通文本,也是它的执行程序.所以商业视觉软件包开发不能用这个. python可以用于工业应用,因为除非你的设备绝密,否则让客户看到源码也无所谓. python用于工 ...

最新文章

  1. 浅析 VO、DTO、DO、PO 的概念、区别和用处!
  2. 重磅!计算机主题征稿,【EI/SCI检索】ICCBD 2021诚邀您投稿参会!
  3. AI+医疗:基于模型的医疗应用大规模分析 | 腾讯AI Lab学术论坛演讲
  4. python语言自学-python语言系统学习(四)
  5. Ubuntu16.04安装NVIDA显卡驱动
  6. 「会会」产品体验报告
  7. webbrowser载入地图网页出现脚本错误解决
  8. flex的12个属性
  9. 用户与硬件之间的接口
  10. 高并发异步uwsgi+web.py+gevent
  11. windos 为什么会突然服务停止了_女生为什么会突然说分手?
  12. Postfix 邮件队列删除
  13. java poi操作word转pdf
  14. 手机王者荣耀怎么投屏到电脑
  15. 用MATLAB制作音乐-小星星
  16. TODA WMS(仓库管理系统)简介
  17. 2019年全球卫星遥感行业现状、融资及卫星遥感行业发展趋势分析:即时化、网络化、个性化、多样化(转载)
  18. win10系统不认ps2键盘怎么办?圆口键盘win10系统无法使用的解决方法,亲测有效!!
  19. JAVA开发与运维(云安全产品)
  20. arcgis把jpg转成栅格图像_土地利用JPG数据转栅格

热门文章

  1. cad面积累计lisp怎么用_cad中面积及重量、长度及等分、长度及总长、导出文字、数字编号等lisp应用...
  2. 【20保研】北京大学前沿交叉学科研究院关于举办2019年交叉学科优秀大学生夏令营的通知...
  3. ORA-01013: user requested cancel of current operation
  4. Lab08-数组初步(2019.11.19)
  5. 基于SpringBoot的教务系统【附源码】
  6. ad 画图时的一点点小技巧和BMS硬件调试
  7. 比KMP算法更简单更快的字符串匹配算法
  8. base64和图片的互转(HTML5的File实现)
  9. 硬件三人行,运放基础第2讲听课笔记,电路分析基础(一)
  10. 大阪第47天——老徐也出字体了