datetime模块j python 处理时间和日期的标准库
date 日期对象,常用的属性有year, month , day
time 时间对象hour, minute, second, 毫秒
datetime 日期时间对象,常用的属性有hour, minute, second, microsecond
timedelta 时间间隔, 即两个时间点之间的长度
格式字符串常用格式:
%Y/%y 年
%m 月
%d 日
%H 时
%M 分
%S 秒
datetime类中常用方法
datetime.now() 获取当前日期时间
日期时间转化为时间戳: 时间日期对象.timestamp() # 如: datetime.now().timestamp()
时间戳转化为日期时间: datetime.fromtimestamp(时间戳) # 如: datetime.fromtimestamp(1534231316.796308)
日期时间对象转字符串: 时间日期对象.strftime(format格式) # 如: datetime.now().strftime('%Y-%m-%d')
字符串转化为日期时间对象: datetime.strptime(str_date, format格式) # 如: datetime.strptime('2019-06-01 15:25:30', '%Y-%m-%d %H:%M:%S') # 注意前后格式要一致
# timedelta: 时间运算
import datetime
now = datetime.datetime.now().date()
res = now + datetime.timedelta(days1)
print(res.strftime('%Y-%m-%d')) # 得到明天的日期 # 2019-06-02
res = now - datetime.timedelta(days=3)
print(res.strftime('%y-%m-%d')) # 得到三天前的日期 # 19-05-29
from datetime import datetime
dt = datetime.now()
print('当前日期和时间: {}'.format(dt))
# print('指定格式输出的当前时间: {}'.format(dt.strftime('%y{y}-%m{m}-%d{d}').format(y='年'.encode(), m='月'.encode(), d='日'.encode())))
print('指定格式输出的当前时间: {}'.format(dt.strftime('%y{y}-%m{m}-%d{d}').format(y='年', m='月', d='日')))
print(dt.strftime('%y{y}-%m{m}-%d{d}-%H{H}-%M{M}-%S{S}').format(y='年', m='月', d='日', H='时', M='分', S='秒'))
date = dt.date() # 日期
print('日期: {}'.format(date))
time = dt.time() # 时间
print('时间: {}'.format(time))
# import time
# print(time.time()) # 一个简单的时间戳
# 从 1970.1.1.0.0
# 时间戳
ret = dt.timestamp() # 时间转换为时间戳
print('当前时间转化为的时间戳: {}'.format(ret))
dt2 = datetime.fromtimestamp(ret) # 将时间戳转换为时间
print('当前时间戳转化为的时间:{}'.format(dt2))
import datetime
now_date = datetime.datetime.now()
dt = datetime.timedelta(hours=24, minutes=45, seconds=50)
print(now_date-dt)
# print(dt-now_date) # 报错
# print(dt+now_date) # 没有错,但是报高亮显示
date2 = datetime.date(1997, 8, 12)
print(date2) # 1997-08-12
time2 = datetime.time(0, 50, 50)
print(time2) # 00:50:50
t = datetime.timedelta(hours=1, weeks=2) # week 周; 星期 # 两周就是 14 天
print(date2+t)
print('===='*20)
# strftime()
# stfptime()
now_date = datetime.datetime.now()
print(now_date, type(now_date)) # 2019-06-01 17:58:47.393771 <class 'datetime.datetime'>
str_date = now_date.strftime('%Y-%m-%d %H:%M:%S') # strftime 转换为字符串的时间
print(str_date, type(str_date)) # 19-06-01 17:58:47 <class 'str'>
date = datetime.datetime.strptime(str_date, '%Y-%m-%d %H:%M:%S') # strptime() 要接收两个参数, 第十个参数要与转换的格式化参数一致
print(date, type(date)) # 2019-06-01 18:01:35 <class 'datetime.datetime'>