Python中日期和时间格式化函数的用法
在Python中,有很多对日期和时间进行格式化输出的函数,这些函数常用于数据处理、文本操作等领域。在本篇文章中,我们将探讨日期和时间格式化函数的用法。
1. time模块
time模块是Python自带的模块,常用于处理UNIX时间戳。其中,时间戳(timestamp)是指从1970年1月1日零时(格林威治时间)起至现在的秒数。time模块中常用的日期和时间格式化函数有以下几个:
time.strftime(format[, t])
该函数用于将时间戳转换为字符串。其中,format是指转换后的字符串格式,t是指时间戳。例如,将当前时间戳转换为字符串:
import time
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
运行结果为:2021-12-15 16:29:44
该函数中常用的格式化字符串有:
%Y:4位数的年份,如2021;
%m:1到12的月份,如1月为01,2月为02;
%d:1到31的日期,如1日为01,2日为02;
%H:小时数,如1-23;
%M:分钟数,如0-59;
%S:秒数,如0-59;
%a:星期几的简称,如Mon;
%A:星期几的全称,如Monday;
%b:月份的简称,如Jan;
%B:月份的全称,如January;
%c:完整的日期和时间,如Sat Jun 06 14:36:59 2020;
%j:一年中的第几天,如001-366;
%p:上午或下午的标志,如AM、PM;
%U:一年中的第几周,将周天作为每周的 天,如00-53;
%w:星期几的数字,0代表周日,1代表周一,依次类推;
%W:一年中的第几周,将周一作为每周的 天,如00-53;
%x:日期的格式,如06/06/20;
%X:时间的格式,如14:36:59。
例如,将上面的代码中的format改为"%Y年%m月%d日 %H:%M:%S %a",则输出结果为:2021年12月15日 16:29:44 Wed。
time.strptime(string[, format])
该函数用于将字符串转换为时间戳。其中,string是指要转换的字符串,format是指转换前的字符串格式。例如,将字符串"2021-12-15 16:29:44"转换为时间戳:
import time
t = time.strptime("2021-12-15 16:29:44", "%Y-%m-%d %H:%M:%S")
print(time.mktime(t))
运行结果为:1639564184.0
time.mktime(t)
该函数用于将本地时间转换为时间戳。其中,t是指本地时间的结构体。例如,将上面的代码中的t作为参数传入:
import time
print(time.mktime(time.strptime("2021-12-15 16:29:44", "%Y-%m-%d %H:%M:%S")))
运行结果为:1639564184.0
2. datetime模块
datetime模块是Python自带的模块,用于对日期和时间进行处理。与time模块不同,datetime模块提供的日期时间格式化函数更加高级。其中,datetime模块常用的日期和时间格式化函数有以下几个:
datetime.datetime.strftime(format)
该函数用于将datetime对象转换为字符串。其中,format是指转换后的字符串格式。例如,将当前时间转换为字符串:
import datetime
print(datetime.datetime.strftime(datetime.datetime.now(), "%Y-%m-%d %H:%M:%S"))
运行结果同上:2021-12-15 16:29:44
注意,strftime函数的参数是datetime.datetime对象,不是timestamp。
datetime.datetime.strptime(date_string, format)
该函数用于将字符串转换为datetime对象。其中,date_string是指要转换的字符串,format是指转换前的字符串格式。例如,将字符串"2021-12-15 16:29:44"转换为datetime对象:
import datetime
t = datetime.datetime.strptime("2021-12-15 16:29:44", "%Y-%m-%d %H:%M:%S")
print(t)
运行结果为:2021-12-15 16:29:44
datetime.datetime.fromtimestamp(timestamp)
该函数用于将timestamp转换为datetime对象。其中,timestamp是指时间戳。例如,将上面的代码中的time.mktime(t)的返回值作为参数传入:
import datetime
print(datetime.datetime.fromtimestamp(1639564184.0).strftime("%Y-%m-%d %H:%M:%S"))
运行结果同上:2021-12-15 16:29:44
另外,datetime模块还提供了一些常用的时间间隔(timedelta)操作函数,例如:
datetime.timedelta(days=x)
该函数用于创建一个时间间隔对象,常用于计算时间差。其中,x是指时间间隔的天数。例如,计算某个时间三天后的时间:
import datetime
t = datetime.datetime.now() + datetime.timedelta(days=3)
print(t.strftime("%Y-%m-%d %H:%M:%S"))
运行结果为:2021-12-18 16:29:44
综上所述,对于Python中的日期和时间格式化函数,我们主要了解了time模块和datetime模块的相关函数。这些函数可以方便地转换时间戳、字符串和datetime对象,同时也提供了更加高级的时间差操作和时间运算方式。掌握这些函数的使用,可以对处理时间相关问题有所帮助。
