datetime是python内置库中用于处理时间相关数据的标准模块, 通过这个模块的学习我们可以掌握非常重要的时间类型数据的操作方法, 我们也可以通过对这个模块的学习, 加深对模块的理解。
# 导入datetime中的datetime类
from datetime import datetime
我们可以直接调用datetime类下面的now方法获取当前时间
# 获取当前时间
now = datetime.now()
now
使用这种语法直接生成一个时间
test = datetime(2020, 8, 4, 12)# 2020年8月4日 12点
test # 2020年8月4日 12点
输出
datetime.datetime(2020, 8, 4, 12, 0)
我们可以通过属性值调取时间中的一部分
now.year
now.month
now.day
now.hour
now.minute
now.second
打印一个时间会自动格式化
print(now)
我们可以用减法计算两个时间之间的时间差
onetime = datetime(2019, 12, 12, 12, 12)
onetime
delta = now - onetime
delta
两个时间之间相差236天, 返回的是一个叫做timedelta的数据类型。
timedelta数据类型可以通过days, seconds等获取时间差中的某一部分。
delta.days
delta.seconds
cpu时间戳是通过计算从1970年1月1日8点0分到某一个时间点所经历的的秒数, 计算得来的。
所以通过这种方法, 1970年以后的任意一个时间点, 都会有一个唯一的浮点数来代表这一个时刻, 这个数值就是CPU时间戳。
datetime转换成时间戳
now.timestamp()
一个时间戳转换成datetime
x = 10 # 一个时间戳, 就是一个数字
datetime.fromtimestamp(x) # 1970年1月1日8点0分 10秒
x2 = 100000000
datetime.fromtimestamp(x2)
很多时候,用户输入的日期和时间是字符串,要处理日期和时间,首先必须把str转换为datetime。
转换方法是通过datetime.strptime()实现, 除了字符串以外, 还需要把字符串的格式告诉电脑, 电脑才能按照格式进行转换。
input_str = '2020-08-04 20:00:20'
datetime.strptime(input_str, '%Y-%m-%d %H:%M:%S')
接下来看一下如何将datetime转换成字符串, 可以使用strftime函数进行转换, 想要转换什么格式就配置什么样format。
datetime.strftime(now, '%Y-%m-%d %H:%M:%S')
datetime.strftime(now, '%Y/%m/%d')
按照上面的文本内容, 对datetime模块的使用进行练习: