Skip to content

Python 日期

Python 中的日期不是其自身的数据类型,但是我们可以导入名为 datetime 的模块,把日期视作日期对象进行处理。

导入 datetime 模块并显示当前日期:

python
import datetime

x = datetime.datetime.now()
print(x)

strftime() 方法

datetime 对象拥有把日期对象格式化为可读字符串的方法。

该方法称为 strftime(),并使用一个 format 参数来指定返回字符串的格式:

显示月份的名称:

python
import datetime

x = datetime.datetime(2019, 10, 1)

print(x.strftime("%B"))

所有合法格式代码的参考:

指令描述实例
%aWeekday,短版本Wed
%AWeekday,完整版本Wednesday
%wWeekday,数字 0-6,0 为周日3
%d日,数字 01-3131
%b月名称,短版本Dec
%B月名称,完整版本December
%m月,数字01-1212
%y年,短版本,无世纪18
%Y年,完整版本2018
%H小时,00-2317
%I小时,00-1205
%pAM/PMPM
%M分,00-5941
%S秒,00-5908
%f微妙,000000-999999548513
%zUTC 偏移+0100
%Z时区CST
%j天数,001-366365
%U周数,每周的第一天是周日,00-5352
%W周数,每周的第一天是周一,00-5352
%c日期和时间的本地版本Mon Dec 31 17:41:00 2018
%x日期的本地版本12/31/18
%X时间的本地版本17:41:00
%%A % character%

strptime和strftime的区别

strptime

p表示parse,表示分析的意思,所以strptime是给定一个时间字符串和分析模式,返回一个时间对象

strftime

f表示format,表示格式化,和strptime正好相反,要求给一个时间对象和输出格式,返回一个时间字符串

python
import datetime

time1 = datetime.datetime.strptime('2019/07/04 14:47', '%Y/%m/%d %H:%M')
print(type(time1), time1)

# 两种写法都是一样的,这里time1即上面代码返回的时间对象
time2 = datetime.datetime.strftime(time1, '%Y/%m/%d %H:%M')
time2 = time1.strftime('%Y/%m/%d %H:%M:%S')

print(type(time2), time2)