Python作为一门“胶水语言”,能够方便地使用日期时间处理功能来帮助我们进行数据分析、任务计划等应用。而Python中的日期时间处理涉及到两个重要概念:日期时间格式化和日期时间解析,它们分别涉及到了函数strftime()和strptime()。在本文中,我们将深入了解这两个函数的作用、方法以及用法区别。
一、strftime()函数
Python的strftime()函数是用来将日期时间转换为一定格式的字符串。它接收一个datetime对象和一个格式化指令作为参数,返回一个字符串表示日期和时间。例如,要将日期和时间格式化为\"2021-01-12 13:45:30\"的字符串,可以像下面这样使用strftime():
import datetime
now = datetime.datetime.now()
print(now.strftime('%Y-%m-%d %H:%M:%S'))
这里用到了datetime模块的now()函数获取当前时间,再通过strftime()函数将其格式化输出。
在strftime()函数中,有一系列指令可以用来格式化日期和时间。下面是一些常用指令及其含义:
- %Y:四位数年份,例如:2021
- %m:月份(01-12)
- %d:天(01-31)
- %H:小时(00-23)
- %M:分钟(00-59)
- %S:秒(00-59)
除此之外,还可以使用一些特定指令来表示日期和时间的其他属性,比如星期几、月份的名称、上、下午等等。不过需要注意的是,不是所有的指令都适用于所有的操作系统。
二、strptime()函数
strptime()函数与strftime()函数相反,用于将字符串转换为datetime对象。它接收一个字符串和一个格式化指令作为参数,返回一个datetime对象表示日期和时间。
import datetime
time_str = '2021-01-12 13:45:30'
time = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S')
print(time)
这里将字符串\"2021-01-12 13:45:30\"通过strptime()函数转换为datetime对象,再通过print()函数输出。
在strptime()函数中,使用与strftime()函数相同的指令可以将字符串转换为datetime对象。例如上述代码中的\"%Y-%m-%d %H:%M:%S\"指令与strftime()函数中的相同。
需要注意的是,strptime()函数只能识别与指令相对应的格式。如果字符串与指令不匹配,将会抛出ValueError异常。
三、strftime()和strptime()的区别
strftime()函数和strptime()函数的不同点主要在于它们的输入和输出。strftime()函数接受datetime对象并输出格式化后的字符串,而strptime()函数接受格式化后的字符串并输出datetime对象。
另一个不同点是它们处理的时间信息。strftime()函数的输出是与本地时区相关的,而strptime()函数处理的时间信息是UTC时间,或者在输入字符串中提供了时区信息的话将使用字符串中提供的时区信息。
此外,strftime()和strptime()函数所使用的指令是相似的,但也有些微小的差别。在指令的使用和格式化的输出上,需要特别留意。
总结
Python中的strftime()函数和strptime()函数是一对重要的函数,分别用于将日期时间格式化为字符串和将格式化后的字符串转换为日期时间对象。在使用它们时,需要详细理解它们的方法和用法,以及它们之间的差异。只有了解这些之后,我们才能灵活运用,处理我们的日期时间相关业务。