使用Python的datetime函数把时间格式化成字符串
Python的datetime模块是用于操作日期和时间的标准库之一。它提供了许多方法来创建、操作和格式化日期和时间对象。datetime对象代表一个特定的日期和时间,可以包含年、月、日、小时、分钟、秒和微秒等信息。下面将介绍如何使用datetime将时间格式化为字符串。
一、时间戳转换成字符串
时间戳是指从某个特定时间(如1970年1月1日00:00:00)以来的秒数。Python中的time模块提供了将时间戳转换成UTC时间的方法。但是,这个时间格式不便于人类的读写,因此可以使用datetime模块中的strftime()方法将时间格式化为我们需要的字符串。
先来看一个例子:
import time timestamp = 1620378823 utc_time = time.gmtime(timestamp) print(utc_time)
输出结果为:
time.struct_time(tm_year=2021, tm_mon=5, tm_mday=7, tm_hour=12, tm_min=47, tm_sec=3, tm_wday=4, tm_yday=127, tm_isdst=0)
上面的代码中,我们使用time.gmtime()方法将时间戳转换成UTC时间格式,并直接将结果打印出来。可以看到,转换后的时间格式已经变成了time.struct_time类型,这个类型不太友好,因此接下来我们将使用strftime()函数进行格式化转换。
import time
timestamp = 1620378823
utc_time = time.gmtime(timestamp)
fmt_time = time.strftime("%Y-%m-%d %H:%M:%S", utc_time)
print(fmt_time)
上面的代码中,我们使用time.strftime()方法将UTC时间格式化为字符串,并将格式化后的结果打印出来。
输出结果为:
2021-05-07 12:47:03
通过fmt_time,我们将时间戳转换成了易读的日期时间字符串。
二、字符串转换成时间对象
同样,我们也可以使用datetime模块中的strptime()方法将字符串转换成时间对象。strptime()函数的 个参数为待转换的字符串,第二个参数为格式化字符串。格式化字符串中指定了日期和时间的格式,可以用来将字符串转换成对应的datetime对象。
举个例子:
import datetime str_time = "2021-05-07 12:47:03" dt_time = datetime.datetime.strptime(str_time, "%Y-%m-%d %H:%M:%S") print(dt_time)
输出结果为:
2021-05-07 12:47:03
上面的代码中,我们将字符串str_time转换成datetime对象,并将结果打印出来。可以看到,转换后的时间格式已经变成了datetime.datetime类型。注意,strptime()函数中的格式化字符串必须与待转换的字符串格式匹配,否则将会出现ValueError异常。
三、日期时间格式化
除了使用time模块和datetime模块,我们还可以使用Python内置的字符串格式化方法完成日期时间的格式化。常见的格式化方式有以下几种:
1. %Y:年份,如2021表示为"2021";
2. %m:月份,如5表示为"05";
3. %d:日期,如7表示为"07";
4. %H:小时,如12表示为"12";
5. %M:分钟,如47表示为"47";
6. %S:秒,如3表示为"03";
7. %f:毫秒,如123表示为"123000";
8. %z:时区偏移量,如+0800表示为"+0800";
9. %Z:时区名称,如CST表示为"CST";
10. %a:星期简称,如Fri表示为"Fri";
11. %A:星期全称,如Friday表示为"Friday";
12. %b:月份简称,如May表示为"May";
13. %B:月份全称,如May表示为"May";
14. %c:标准日期时间串,格式化为"%a %b %d %H:%M:%S %Y";
15. %p:上午或下午,如PM表示为"PM";
16. %r:时间,格式化为"%I:%M:%S %p";
17. %x:日期部分,格式化为"%m/%d/%y";
18. %X:时间部分,格式化为"%H:%M:%S";
19. %%:百分号。
下面举个例子:
import datetime
dt = datetime.datetime.now()
print(dt.strftime("%Y-%m-%d %H:%M:%S"))
输出结果为:
2021-05-08 17:48:03
上面的代码中,我们使用datetime.datetime.now()方法获取当前日期时间,并将其格式化为字符串。strftime()函数中的格式化字符串与C标准库中的strftime()函数类似,可以根据自己的需求进行修改。
总结:
通过上述例子我们了解到了Python中如何把时间格式化成字符串,以及如何把字符串转换成时间对象,还介绍了一些常用的日期时间格式化方式。掌握这些知识可以帮助我们更好地处理日期相关的问题。
