在将数据存储于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. SRWebSocket源码浅析(上)
  2. Android:你好,androidX!再见,android.support
  3. 提高阅读源代码的效率 转
  4. c语言字符串截取_一文搞懂 C 语言 #、##、__VA_ARGS__
  5. 刷爆抖音,评分9.7!这本Python书太酷了!程序员:太爱!
  6. keil5 最新版注册机 下载
  7. 新中大账务软件win7连接慢的问题
  8. Zynga和Unity:独家奖励广告
  9. impress.js css模板,使用impress.js制作幻灯片
  10. 计算机发展趋势 网络化,计算机的发展趋势表现在多极化网络化等几个方面
  11. 新手python之BP神经网络——手写公式推导+可运行代码+编程中遇到的问题
  12. AngularJS车牌号正则表达式验证
  13. IDE——jupyter的安装与卸载
  14. 主从复制报错Fatal error:The slave I/O thread stops because master and slave have equal MySQL server UUIDs;
  15. 25行代码解决财务数据大写金额转换
  16. Windows自带远程桌面,非常好用的全新体验。
  17. H.264基础知识总结
  18. c语言打字游戏,用C语言实现的打字游戏
  19. 基础IO —— Linux
  20. 计算机网络的形成与发展

热门文章

  1. 【开关】如何理解树状矩阵和交叉点矩阵
  2. 移动mgv2000_JL代工_s905l2_MT7668_emmc_免拆卡刷固件包
  3. c语言操作mysql和数据库基本操作
  4. 三星台式计算机参数,评测三星平板电脑Galaxy Tab S7 2020款怎么样?三星Galaxy Tab S7 2020款参数配置如何?...
  5. Luogu P2615 神奇的幻方
  6. 计时器工具 StopWatch
  7. [软件使用]chrome 安装crx
  8. Java版本实现中国象棋
  9. Go语言bits包的位运算操作基础
  10. 科学-地理:地理(地球科学)百科