Python基础 时间、日期操作

使用datetime模块获取日期和时间

在datetime模块中,有一个datetime类。其中有一个 now() 的内置方法,可以用来获取当前地区时间对象

# 从模块中导入
from datetime import datetime
# 获取日期时间对象
T = datetime.now() 
print(T)  # 打印结果: xxxx-xx-xx xx:xx:xx.xxxxxx
print(type(T))  # 打印结果:<class 'datetime.datetime'>

打印结果示例:
日期时间打印结果
通过结果可以发现,通过此方法可以获取我们的当前时区的时间对象
。但是这个对象不是一个字符串类型,而是一个对象。而我们经常需要格式化时间,转化为一个字符串然后进行操作

日期时间对象–>字符串

# 继续使用上面代码块的结果
# 调用日期时间对象的 strftime() 方法
t = T.strftime('%Y-%m-%d %H:%M:%S')
print(t)  # 打印结果:'xxxx-xx-xx xx:xx:xx'
print(type(t))  # 打印结果:<class 'str'>

通过上面的示例可以看出。datetime模块中的datetime类的now() 方法可以返回一个日期时间对象。并且可以通过该对象自带的 strftime() 方法将该对象转化为一个字符串。注意在调用该方法时需要传递一个字符串。
通过该字符串指定格式化之后的效果。来得到我们想要的部分。
例如:如果只想要日期,不需要具体的时间,就可以传递字符串 ‘%Y-%m-%d’ 从而得到当前日期
如果只需要时间,就可以传递字符串:’%H:%M:%S’,从而得到当前的时间。

字符串时间–>时间日期对象

一般在调用日期模块时,我们一般只需要得到格式化后的字符串时间就可以了,但有时我们需要进行日期时间的先后判断。例如,某一天是否在某一天后面等等。这些时间日期上的比较,如果仅仅是用字符串的方法来比较的话会比较麻烦,需要单独设计一个功能来完成字符串格式的日期比较。但是Python中的日期时间对象是可以之间进行比较运算的。因此,当我们得到了一个字符串格式的日期时,可以将其转化为日期时间对象,然后直接进行判断和比较

示例代码

# 首先让我们看一下日期时间对象的内置属性和方法
for i in dir(T):
	print(i)
# 打印结果较长,在此不一一列出,但需啊哟注意到,打印结果中有这样三个魔法方法
# __gt__ 、 __lt__ 、 __eq__   这三个魔法方法表名,时间日期对象之间是可以进行 < 、 > 、 =  运算的
# 日期时间对象比较运算验证
# 创建两个时间日起对象
from datetime import datetime
A = datetime.now()
B = datetime.now()
# 打印
print(A)
print(B)
# 进行比较运算
res = A>B
print(res)
res = A<B
print(res)
res = A==B
print(res)

通过上面的代码示例可以看出,日期时间对象之间是可以进行比较大小的运算的,因此我们讲一个字符串时间转化成日起对象也就有了实际意义。

# 字符串转化为日期对象
from datetime import datetime
# 只包含日期的字符串
S1 = '1997-01-06'
S2 = '1998-01-06'
# 只包含时间的字符串
S3 = '10:10:25'
S4 = '10:30:30'
# 包含日起和时间的字符串
S5 = S1 + ' ' + S3
S6 = S2 + ' ' + S4
# 转化为日期时间对象,需要调用datetime模块的strptime()函数
T1 = datetime.strptime(S1,'%Y-%m-%d')
T2 = datetime.strptime(S2,'%Y-%m-%d')
T3 = datetime.strptime(S3,'%H:%M:%S')
T4 = datetime.strptime(S4,'%H:%M:%S')
T5 = datetime.strptime(S5,'%Y-%m-%d %H:%M:%S')
T6 = datetime.strptime(S6,'%Y-%m-%d %H:%M:%S')

print(T1>T2)
print(T1>T3)

print(T3>T4)
print(T3>T5)

print(T5>T6)
print(T6>T1)

打印结果如下:
False
True
False
False
False
True
从此例可以看出,字符串格式化成为一个日期时间对象后,同样会拥有了日期时间对象的比较方法。因此就可以进行日期时间的比较

注意事项

1、在进行日期时间和字符串的相互转换时,需要注意传递的格式转换参数是否与日期时间格式一致,例如字符串: ‘2019-04-27 11:20:30’ 在转换为日期时件对象时,需要注意格式转换参数需要与日期格式严格一致,年、月、日 之间用 - 隔开,那么格式转换参数中的年、月、日也需要用 - 隔开,时、分、秒之间用冒号隔开。并且格式转换符号 %Y、%m、%D 等,必须也要与日期格式相对应。
2、格式化符号意义参照日期时间格式化参数一览表
上面的对照表中常用的就是 %Y %m %d %H %M %S 分别用来格式化年、月、日、时、分、秒。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值