python 之 时间、日期、时间戳之间的各种转换

在将数据存储于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

你可能感兴趣的:(python基础使用,python)