在写项目的时候经常会用到日期格式,以及它们之间相互的转化。
常用到的日期数据格式有:str
、datetime.datetime
、datetime.date
。
在使用的时候首先导入 datetime 模块:
时间的格式转换/时区转换
import time
from datetime import datetime, timedelta
# from pics.base import util
datetime_now = datetime.now()
time_time = time.time()
time_local = time.localtime()
datetime_utcnow = datetime.utcnow()
# 本地时间
print(datetime_now) # 2019-07-08 11:32:11.738098
print(time_time) # 1562556731.738098
print(time.strftime("%Y-%m-%d %H:%M:%S",time_local)) # time.struct_time(tm_year=2019, tm_mon=7, tm_mday=8, tm_hour=11, tm_min=48, tm_sec=56, tm_wday=0, tm_yday=189, tm_isdst=0)
time_time_date = datetime.fromtimestamp(time_time)
print(time_time_date) # 2019-07-08 11:34:33.822897
# 零时区 # 格林威治时间
print(datetime_utcnow) # 2019-07-08 03:32:11.738098
# 本地时间的昨天明天
yestday = datetime_now - timedelta(days=1)
tomorrow = datetime_now + timedelta(days=1)
print(yestday) # 2019-07-07 11:36:08.371032
print(tomorrow) # 2019-07-09 11:36:08.371032
# 有效期的到期日
expired_at = int(time.time()/86400)*86400 + 86400 * 720
print(expired_at) # 1624752000
print(datetime.fromtimestamp(expired_at)) # 2021-06-27 08:00:00
# 时区转换 (零时区转为东八区)
from datetime import datetime, timedelta
now_time = datetime.utcnow() # 2019-07-08 10:54:04.376723
utc_time = now_time + timedelta(hours=8) # UTC只是比北京时间提前了8个小时,所以零时区时间加上八小时
utc_time = utc_time.strftime("%Y-%m-%d %H:%M:%S") # 2019-07-08 18:54:04
当前时间
now = datetime.now()
或者
import time
t1 = time.time()
t2 = time.time()
# 计算耗时操作
t2 - t1 = 耗时
零时区
utcnow = datetime.utcnow()
print('世界标准时间:', utcnow)
指定时间
dt = datetime(2017, 5, 23, 12, 20)
print('指定日期:', dt)
print(type(dt))
时间戳
dt = datetime.timestamp(dt)
print(dt)
print(type(dt))
str转datetime.datetime
`lv_1 = "2017-05-23"`
startTime = datetime.strptime(lv_1, '%Y-%m-%d')
print(startTime)
print(type(startTime))
datetime-->str `strftime`表示从时间转为字符串,中间的`f`表示`from`
str-->datetime `strptime`表示从字符串转换到时间
order_id = timezone.now().strftime('%Y%m%d%H%M%S') + ('%09d' % user.id)
datetime.datetime转datetime.date
endTime = datetime.date(startTime)
print(endTime)
print(type(endTime))
运行结果:
当前时间: 2019-03-28 17:19:11.498322
世界标准时间: 2019-03-28 09:19:11.498322
指定日期: 2017-05-23 12:20:00
<class 'datetime.datetime'>
1495513200.0
<class 'float'>
2017-05-23 00:00:00
<class 'datetime.datetime'>
2017-05-23
<class ‘datetime.date’>
原文:https://blog.csdn.net/apollo_miracle/article/details/88873606