#导入time模块import time
#获取时间戳
start_time = time.time ()
print ( "start_time = ", start_time)
time .sleep ( 3)
end_time = time.time ()
print ( "end_time = ", end_time)#计算运行时间
print("运行时间= { :.0f } ".format(end_time - start_time))
# 获取本地时间
import time
t = time.localtime() # 返回本地时间,是一个struct_time对象,struct_time对象之间不可以加减
print(t)
print('年份:',t.tm_year)
print('月份:',t.tm_mon)
print('日期:',t.tm_mday)
print('小时:',t.tm_hour)
print('分钟:',t.tm_min)
print('秒:',t.tm_sec)
print('一周的第一日:',t.tm_wday)
print('一年的第几日:',t.tm_yday)
结果:
年份: 2023
月份: 12
日期: 18
小时: 11
分钟: 51
秒: 14
一周的第一日: 0
一年的第几日: 352
格式化日期:
# 获取本地时间
import time
t = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
print(type(t))
print(t)
t=time.strptime(t,'%Y-%m-%d %H:%M:%S') # 第一个参数就是返回的类型
print(type(t))
print(t)
2023-12-18 12:02:27
time.struct_time(tm_year=2023, tm_mon=12, tm_mday=18, tm_hour=12, tm_min=2, tm_sec=27, tm_wday=0, tm_yday=352, tm_isdst=-1)
datatime模块
datetime模块支持日期和时间的运算,包含下面四种数据:
date:日期
time:时间
datetime:日期时间
timedelta: 时间间隔
date日期类
传递年月日
a = datetime.date(2023, 12, 18)
print(type(a))
print(a)
2023-12-18
日期减法操作( 支持与另一个date比较 ) date与date减得到timedelta
a = datetime.date(2023, 12, 18)
b = datetime.date(2023, 11, 9)
print(type(a - b))
print(a - b)
39 days, 0:00:00
time时间类
传递时分秒
a = datetime.time(10, 25, 30)
print(type(a))
print(a)
10:25:30
支持与另一个time判断,time之间不支持进行加减法,需要转换成datetime进行。
datetime日期时间类
定义datetime:传递年、月、日、时、分、秒
a = datetime.datetime(2023, 12, 18, 10, 25, 30)
print(type(a))
print(a)
print(a.date())
print(a.time())
2023-12-18 10:25:30
2023-12-18
10:25:30
timedelta类
时间差:表示两个datetime对象之间的间隔。
用days、seconds、microseconds(微秒)三个变量存储时间间隔定义时可以传入: weeks、days、hours、minutes、seconds 、milliseconds(毫秒) 、 microseconds,然后自动转换成上述三个变量datetime与timedelta进行加减得到新的datetime。
datetime之间进行减法.得到timedelta
a = datetime.datetime(2023, 12, 18, 10, 25, 30)
delta = datetime.timedelta(days=100) # 间隔值
# 计算100天之后的日期
b = a + delta
print(b)
# 计算100天前的日期
b = a - delta
print(b)
# 结果
2024-03-27 10:25:30
2023-09-09 10:25:30
a = datetime.datetime(2023, 12, 18, 10, 25, 30)
b = datetime.datetime(2024, 3, 1, 11, 25, 30)
delta = b - a
print(delta)
# 输出时间差的天数
print(delta.days)
# 输出秒数
print(delta.seconds)
# 统一转换成秒
print(delta.total_seconds())
# 结果
74 days, 1:00:00
74
3600
6397200.0
例题:
计算从1901年1月1日到2000年12月31日存在多少个星期1。
利用date数据类型的weekday方法判断是否为周一利用timedelta不断增加1天
import datetime
start = datetime.date(1901, 1, 1)
end = datetime.date(2000, 12, 31)
ans = 0
while start < end:
if start.weekday() == 0:
ans += 1
start += datetime.timedelta(days=1)
print(ans)