Loading

datetime模块的使用

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'>
posted @ 2019-06-01 22:51  未来已来,你来不来  阅读(191)  评论(0编辑  收藏  举报