编程中经常会对时间进行处理,python中datetime是比较常用的时间模块,常用于获取时间、时间类型与字符串转化、时间格式化输出、计算时间差等,本文简单总结下以备使用。
获取时间、时间类型与字符串转化及时间格式化输出,主要依靠datetime.datetime类;计算时间差主要依靠datetime.timedelta类。
1、获取时间
# -*- coding: utf-8 -*-
import datetime
now = datetime.datetime.now()
print(type(now),now)
t = datetime.datetime.today()
print(t)
print(t.year)
print(t.month)
print(t.day)
print(t.hour)
print(t.minute)
print(t.second)
print('本周是今年的第{}周'.format(t.strftime('%U')))
print('今天是{}.'.format(now.strftime('%A')))
print('今天是星期{}'.format(t.isoweekday())) #返回的1-7代表周一到周日;
2020-06-06 20:00:57.477423
2020-06-06 20:00:57.477424
2020
6
6
20
0
57
本周是今年的第22周
今天是Saturday.
今天是星期6
2、时间类型与字符串转化、格式化输出时间
# -*- coding: utf-8 -*-
import datetime
now = datetime.datetime.now()
print(now)
# 时间格式转字符串
print(now.strftime('%Y-%m-%d %H:%M:%S'))
print(now.strftime('%Y-%m-%d %H:%M'))
print(now.strftime('%Y-%m-%d %H'))
print('----------')
# 字符串转时间
t = datetime.datetime.strptime('2020-06-06 00:00:00', '%Y-%m-%d %H:%M:%S')
print(t,type(t))
2020-06-06 20:55:44.554382
2020-06-06 20:55:44
2020-06-06 20:55
2020-06-06 20
----------
2020-06-06 00:00:00
3、计算时间差
# -*- coding: utf-8 -*-
import datetime
now = datetime.datetime.now()
print(now)
# 时间差
t1 = datetime.timedelta(days=1, hours=12)
t2 = datetime.timedelta(days=1, hours=-12)
print(now - t1)
print(now - t2)
days = datetime.timedelta(hours=240).days
print('240小时有{}天'.format(days))
seconds = datetime.timedelta(days=10, hours=10).total_seconds()
print('10天10小时有{}秒'.format(seconds))
2020-06-06 22:01:15.269153
2020-06-05 10:01:15.269153
2020-06-06 10:01:15.269153
240小时有10天
10天10小时有900000.0秒