您的位置:

Python日期格式化字符串strftime的用法

一、strftime()函数介绍

Python中的strftime()函数是用来格式化日期的,它可以将时间元组转换为字符串,并按照指定的格式进行输出。

import time

# 获取当前时间
localtime = time.localtime(time.time())
print("本地时间为 :", localtime)

# 转换为格式化字符串
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", localtime)
print("格式化后的本地时间为:", formatted_time)

上面的代码中,我们先使用time模块获取当前的时间元组localtime,然后将其按照指定的格式("%Y-%m-%d %H:%M:%S")转换为字符串formatted_time,并输出到控制台。运行结果如下:

本地时间为 : time.struct_time(tm_year=2021, tm_mon=8, tm_mday=28, tm_hour=23, tm_min=36, tm_sec=51, tm_wday=5, tm_yday=240, tm_isdst=0)
格式化后的本地时间为: 2021-08-28 23:36:51

可以看到,格式化后的本地时间已经按照指定的格式进行输出了。

二、strftime()函数的格式化符号

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:默认的日期和时间表示法,例如Sat Aug 28 23:36:51 2021
  • %p:上午/下午,例如AM
  • %Z:时区,例如UTC
  • %j:一年中的第几天,001~366
  • %U:一年中的第几周,以第一个星期日为第一天,00~53
  • %W:一年中的第几周,以第一个星期一为第一天,00~53

下面的代码列举了常用格式化符号的使用方法:

import time

# 获取当前时间
localtime = time.localtime(time.time())

print(time.strftime("%Y-%m-%d %H:%M:%S", localtime))  # 2021-08-28 23:36:51
print(time.strftime("%a, %d %b %Y %H:%M:%S %Z", localtime))  # Sat, 28 Aug 2021 23:36:51 UTC
print(time.strftime("%I:%M:%S %p", localtime))  # 11:36:51 PM
print(time.strftime("%j", localtime))  # 240
print(time.strftime("%U", localtime))  # 34

运行结果如下:

2021-08-28 23:36:51
Sat, 28 Aug 2021 23:36:51 UTC
11:36:51 PM
240
34

三、strftime()函数的其他用途

除了将日期转换为指定格式之外,strftime()函数还有其他的用途。

一、将字符串转换为时间元组

import time

# 将字符串转换为时间元组
date_string = "2021-08-28 23:36:51"
time_tuple = time.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(time_tuple)

# 转换为时间戳
timestamp = time.mktime(time_tuple)
print(timestamp)

上面的代码中,我们将一个字符串date_string转换为时间元组time_tuple,并输出到控制台。然后将其转换为时间戳timestamp,并输出到控制台。运行结果如下:

time.struct_time(tm_year=2021, tm_mon=8, tm_mday=28, tm_hour=23, tm_min=36, tm_sec=51, tm_wday=5, tm_yday=240, tm_isdst=-1)
1630211811.0

二、计算时间差距

import time

# 计算时间差距
start_time = time.strptime("2021-08-28 23:00:00", "%Y-%m-%d %H:%M:%S")
end_time = time.strptime("2021-08-29 01:00:00", "%Y-%m-%d %H:%M:%S")
diff = int(time.mktime(end_time) - time.mktime(start_time))
print("时间差距为:", diff, "秒")

上面的代码中,我们计算了2021年8月28日23:00:00和2021年8月29日01:00:00之间的时间差距,并输出到控制台。运行结果如下:

时间差距为: 7200 秒

四、总结

strftime()函数是Python中用来格式化日期的函数,它可以将时间元组转换为字符串。我们可以使用strftime()函数来指定格式化符号来输出不同的格式。除此之外,strftime()函数还可以将字符串转换为时间元组,计算时间差距等。

在日常开发中,我们经常需要对日期进行格式化输出、计算时间差距等操作,所以说掌握strftime()函数的用法对于Python开发者是非常重要的。