赞
踩
在将数据存储于MySQL、Oracle等时,对时间的操作会比较频繁,比如,数据第一次保存于数据库的时间(create_time),数据的更新时间(update_time),查询某个时间等等。在对时间进行操作时,往往会涉及到时间、日期、时间戳之间的各种转换,下面简单介绍几个常用的转换方法。
1、用到的模块
用到的模块有两个:time模块和datetime模块
import time,datetime
2、获取不同要求的时间(字符串格式)
- from datetime import datetime, timedelta
-
- today = 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、str-->时间戳
- import time
-
- nowTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
- print(f'字符类型的当前时间为:{nowTime}')
- # 转为时间数组
- nowTimeArray = time.strptime(nowTime, "%Y-%m-%d %H:%M:%S")
- print(f'数组类型的当前时间为:{nowTimeArray}')
- # 转为秒级时间戳
- nowTimeStamp = str(int(time.mktime(nowTimeArray)))
- print(f'时间戳类型的当前时间为:{nowTimeStamp}')
运行结果:
- 字符类型的当前时间为:2022-03-06 17:31:20
- 数组类型的当前时间为:time.struct_time(tm_year=2022, tm_mon=3, tm_mday=6, tm_hour=17, tm_min=31, tm_sec=20, tm_wday=6, tm_yday=65, tm_isdst=-1)
- 时间戳类型的当前时间为:1646559080
4、原始时间戳-->秒级、毫秒级、微秒级时间戳
- import time
-
- nowTimeStamp = time.time() # 原始时间数据
- sNowTimeStamp = int(nowTimeStamp) # 秒级时间戳
- msNowTimeStamp = int(round(nowTimeStamp * 1000)) # 毫秒级时间戳
- micNowTimeStamp = int(round(nowTimeStamp * 1000000)) # 微秒级时间戳
-
- print(f'原始时间戳为:{nowTimeStamp}')
- print(f'秒级时间戳为:{sNowTimeStamp}')
- print(f'毫秒级时间戳为:{msNowTimeStamp}')
- print(f'微秒级时间戳为:{micNowTimeStamp}')
-
运行结果:
- 原始时间戳为:1646559080.6776936
- 秒级时间戳为:1646559080
- 毫秒级时间戳为:1646559080678
- 微秒级时间戳为:1646559080677694
5、更改str类型日期的显示格式
- tss2 = "2022-03-06 23:40:00"
- # 将字符串格式的时间转为数组
- timeArray = time.strptime(tss2, "%Y-%m-%d %H:%M:%S")
- # 转为其它显示格式
- otherStyleTime = time.strftime("%Y/%m/%d %H:%M:%S", timeArray)
- print(otherStyleTime) # 2022/03/06 23:40:00
-
- tss3 = "2022/03/06 23:40:00"
- timeArray = time.strptime(tss3, "%Y/%m/%d %H:%M:%S")
- # 将字符串格式的时间转为数组
- otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
- print(otherStyleTime) # 2022-03-06 23:40:00
6、时间戳转换为指定格式的日期
- import datetime
- import time
-
- # 使用time模块实现
- timeStamp = int(time.time()) # 当前时间的秒级时间戳
- timeArray = time.localtime(timeStamp)
- otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)
- print(otherStyleTime) # 2022--03--06 17:37:31
-
- # 使用datetime模块实现
- timeStamp = int(time.time()) # 当前时间的秒级时间戳
- dateArray = datetime.datetime.fromtimestamp(timeStamp)
- otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S")
- print(otherStyleTime) # 2022--03--06 17:37:31
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。