9.时间日期日历及错误异常处理

1、python处理时间常用的模块time和datetime、calendar模块

1)time

时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

时间元组:即用一个元组装起来的9组数字表示时间
t = (2018,6,24,16,56,45,0,0,0) #(年、月、日、时、分、秒、一周的第几日、一年的第几日、夏令时<1(夏令时)、0(不是夏令时)、-1(未知),默认 -1>)


#1、时间三种表示方式:

print('当前时间的时间戳:',time.time())

print("获取当前时间的时间元组",time.localtime())

print("英文表示时间:",time.asctime())

# 获取元组的部分信息
print('获取元组的部分信息:',time.localtime().tm_year,
time.localtime().tm_mon,
time.localtime().tm_mday,
time.localtime().tm_wday)

2、三种表示方式相互转换

# 1、元组转化为时间戳

print('元组转化为时间戳',time.mktime((2020,5,17,20,19,40,6,138,0)))
print(time.mktime(time.localtime()))

# 2、时间戳转化为时间元组
print('时间戳转化为时间元组:',time.localtime(1589718234))
print(time.localtime(time.time()))


3、元组转化为时间格式字符串
time.strftime('时间格式样式',时间元组)
print('当前时间元组转时间格式字符串',time.strftime('%Y_%m_%d %H:%M:%S',time.localtime()))

4、时间格式字符串转化为时间元组
time.strptime(时间字符串,时间格式样式)
print('时间格式字符串转化为时间元组:',time.strptime('2020_05_17 20:34:42','%Y_%m_%d %H:%M:%S'))

2)datetime模块


1)#以时间元组创建日期时间
print(datetime.datetime(2020,5,17,12,13,19))
# 获取当前日期时间
print('获取当前日期时间:',datetime.datetime.now())
print('获取当前日期时间:',datetime.datetime.today())


2)时间表示形式相互转换

1)日期时间转化为时间戳

print('日期时间转化为时间戳:',datetime.datetime.now().timestamp())

2)时间戳转化为日期时间
print('时间戳转化为日期时间:',datetime.datetime.fromtimestamp(1589719888))

3)时间格式字符串与时间日期的相互转换
print('转换为时间字符串',datetime.datetime.strftime(datetime.datetime.now(),'%Y_%m_%d %H:%M:%S'))
print('时间字符串转化为时间',datetime.datetime.strptime('2020_05_17 20:51:28','%Y_%m_%d %H:%M:%S'))

3)calendar日历模块

import calendar

print("打印年历",calendar.calendar(2020))

print('打印月历',calendar.month(2020,5))

print('是否为闰年',calendar.isleap(2020))

# 获取指定日期是星期几
print(calendar.weekday(2020,5,16))

print(time.localtime().tm_wday,datetime.datetime.now().weekday())

2、错误异常处理

1)捕获异常语法结构:
try:
执行代码块1
except:
出现异常执行代码2


2)常见错误类型:
# IndentationError 缩进错误
# ValueError 值错误


try:
执行代码块1
except 错误类型 as 变量:
出现异常执行代码2


try:
num1=int(input('请输入数字:'))
print(num1+10)

except ValueError as error1:
print(f'值类型错误:{error1}')
except:
print('非值类型错误!')

3)try

执行代码块1

except

代码块1异常执行代码
else

代码块1无异常执行代码

案例:

try:
num1=int(input('请输入数字:'))
print(num1+10)

except ValueError as error1:

print(f'值类型错误:{error1}')

except Exception as error2:

print(f'非值类型错误!,错误信息{error2}')

else:
print('输入的格式为数字')

4)try

执行代码块1

except

代码块1异常执行代码
else

代码块1无异常执行代码

finally:

不论是否异常都会执行代码块

案例:

try:
num1=int(input('请输入数字:'))
print(num1+10)

except ValueError as error1:

print(f'值类型错误:{error1}')

except Exception as error2:

print(f'非值类型错误!,错误信息{error2}')

else:
print('输入的格式为数字')

finally:
print('格式检验完成')

上一篇:JavaScript中String.prototype.split()


下一篇:C++的运算符重载(2)