Python中如何使用strftime()函数将时间戳转换为日期格式
在Python中,时间戳是表示时间的数字,它以秒为单位,并从Unix纪元(1970年1月1日00:00:00 UTC)开始计算。时间戳在Python中通常使用整数或浮点数表示,是与时区无关的标准时间。
strftime()函数是一个格式化日期和时间的方法,可以将时间戳转换为可读的日期格式。此函数采用两个参数:第一个参数是日期格式字符串,第二个参数是时间戳。日期格式字符串指定日期格式,例如“%Y-%m-%d %H:%M:%S”。
下面是一个strftime()函数的简单例子:
import time
timestamp = 1613372720 # March 16, 2021 20:52:00 UTC
date_str = time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(timestamp))
print(date_str)
输出结果为:2021-02-16 20:52:00
在这个例子中,我们使用了gmtime()函数来将时间戳转换为UTC时间,然后使用strftime()来格式化日期和时间。
以下是Python strftime()函数常用的日期格式标识符:
| 标识符 | 描述 |
| ------ | ----------------------------------------------- |
| %Y | 四位数的年份,如:2021 |
| %m | 月份,01-12 |
| %d | 日期,01-31 |
| %H | 小时,00-23 |
| %M | 分钟,00-59 |
| %S | 秒,00-59 |
| %a | 缩写星期名,如:Sun |
| %A | 完整星期名,如:Sunday |
| %b | 缩写月份名,如:Jan |
| %B | 完整的月份名,如:January |
| %c | 本地日期和时间表示,如:Tue Aug 16 21:30:00 2022 |
| %p | AM或PM |
| %x | 本地日期表示,如:08/16/22 |
| %X | 本地时间表示,如:21:30:00 |
除了以上的标识符之外,还有一些特殊字符可以在格式字符串中使用:
| 字符 | 描述 |
| ---- | ----------------------------------------------------------- |
| % | 在格式字符串中插入百分号,例如:'%%Y' 将会输出 '%Y' 格式 |
| \t | 制表符 |
|
| 换行符 |
| \r | 回车符 |
| \xhh | 以十六进制字符 hh 表示的 ASCII 字符 |
下面是使用Python strftime()函数将当前时间戳转换为日期格式的例子:
import time
timestamp = time.time()
date_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(timestamp))
print(date_str)
输出结果为:2022-08-16 21:30:00
在这个例子中,我们使用了localtime()函数来将时间戳转换为本地时间,然后格式化日期和时间。
除了strftime()函数之外,Python还提供了strptime()函数,它可以将字符串解析为时间元组。strptime()函数也有两个参数:第一个参数是日期字符串,第二个参数是日期字符串的格式。
以下是Python strptime()函数常用的日期格式标识符:
| 标识符 | 描述 |
| ------ | -------------------------------------------- |
| %Y | 四位数的年份,如:2021 |
| %m | 月份,01-12 |
| %d | 日期,01-31 |
| %H | 小时,00-23 |
| %M | 分钟,00-59 |
| %S | 秒,00-59 |
| %j | 一年中的第几天,001-366 |
| %U | 一年中的第几周,以周日为一周的第一天,00-53 |
| %W | 一年中的第几周,以周一为一周的第一天,00-53 |
| %a | 缩写星期名,如:Sun |
| %A | 完整星期名,如:Sunday |
| %b | 缩写月份名,如:Jan |
| %B | 完整的月份名,如:January |
| %c | 本地日期和时间表示,如:Tue Aug 16 21:30:00 2022|
| %p | AM或PM |
下面是一个使用Python strptime()函数将日期字符串转换为时间戳的例子:
import time date_str = '2022-08-16 21:30:00' timestamp = time.mktime(time.strptime(date_str, '%Y-%m-%d %H:%M:%S')) print(timestamp)
输出结果为:1668739800.0
在这个例子中,我们将日期字符串“2022-08-16 21:30:00”转换为时间戳,使用了mktime()函数将时间元组转换为时间戳。
总之, Python的strftime()函数是一个强大的日期格式化工具,可以将时间戳转换为不同的日期格式。而strptime()函数可以将日期字符串转换为时间戳,方便在程序中进行日期和时间的计算和操作。
