Python用datetime
模块处理日期和时间。要使用此模块,我们首先通过以下import
语句将其导入:
import datetime
time
类
我们可以使用time
类表示时间值,time
该类的属性包括小时,分钟,秒和微秒。
time
类的参数是可选的。如果不指定任何参数,则返回的时间为0
例如,要初始化一个值为1小时,10分钟,20秒和13微秒的时间对象,我们可以运行以下命令:
t = datetime.time(1, 10, 20, 13)
要查看时间,请使用以下print
函数
print(t)
输出:
01:10:20.000013
可以按以下方式显示时间的分钟,秒和微秒:
print('Minutes:', t.minute)
print('Seconds:', t.second)
print('Microsecond:', t.microsecond)
输出:
Minutes: 10
Seconds: 20
Microseconds: 13
date类
日历日期的值可以通过date类表示。实例将具有年,月和日的属性。
让我们调用today方法以查看今天的日期:
import datetime
today = datetime.date.today()
print(today)
输出:
2018-09-15
该代码将返回今天的日期,因此您看到的输出将取决于运行上述脚本的日期。
ctime方法
ctime方法以另一种格式打印日期:
print('ctime:', today.ctime())
输出:
ctime: Sat Sep 15 00:00:00 2018
该ctime方法使用的日期时间格式比我们之前看到的更长。此方法主要用于将Unix时间(自1970年1月1日以来的秒数)转换为字符串格式。
strftime方法 日期对象转换为可读的字符串
strftime -> 'string from time'
如何将它们格式化为可读性更高的字符串.我们将使用该strftime方法。此方法可帮助我们将日期对象转换为可读的字符串。它带有两个参数,如以下语法所示:
time.strftime(format, t)
第一个参数是格式字符串,而第二个参数是要格式化的时间,这是可选的。
此方法也可以datetime直接在对象上使用,如以下示例所示:
import datetime
x = datetime.datetime(2018, 9, 15)
print(x.strftime("%b %d %Y %H:%M:%S"))
输出:
Sep 15 2018 00:00:00
我们使用以下字符串格式化日期:
- %b:返回月份名称的前三个字符。在我们的示例中,它返回“ Sep”
- %d:返回当月的一天,从1到31。在我们的示例中,它返回“ 15”。
- %Y:以四位数格式返回年份。在我们的示例中,它返回“ 2018”。
- %H:返回小时。在我们的示例中,它返回“ 00”。
- %M:返回分钟,从00到59。在我们的示例中,它返回“ 00”。
- %S:返回秒,从00到59。在我们的示例中,它返回“ 00”。
我们没有经过时间,因此时间的值都是“ 00”。以下示例显示了如何同时设置时间格式:
import datetime
x = datetime.datetime(2018, 9, 15, 12, 45, 35)
print(x.strftime("%b %d %Y %H:%M:%S"))
输出:
Sep 15 2018 12:45:35
完整的字符代码列表
除了上面给出的字符串之外,该strftime
方法还采用其他几种指令来格式化日期值:
%a
:返回工作日的前三个字符,例如星期三。%A
:返回工作日的全名,例如,星期三。%B
:返回月份的全名,例如9月。%w
:以数字形式返回工作日,从0到6,星期日为0。%m
:以数字形式返回月份,从01到12。%p
:返回AM / PM时间。%y
:以两位数格式返回年份,即不包含世纪。例如,用“ 18”代替“ 2018”。%f
:返回从000000到999999的微秒。%Z
:返回时区。%z
:返回UTC偏移量。%j
:返回一年中的天数,从001到366。%W
:返回一年中的第几周,从00到53,星期一被视为一周的第一天。%U
:返回一年中的第几周,从00到53,星期天被视为每周的第一天。%c
:返回本地日期和时间版本。%x
:返回日期的本地版本。%X
:返回时间的本地版本。
考虑以下示例:
import datetime
x = datetime.datetime(2018, 9, 15)
print(x.strftime('%b/%d/%Y'))
输出:
Sep/15/2018
这是仅获取月份的方法:
print(x.strftime('%B'))
输出:
September
让我们显示年份:
print(x.strftime('%Y'))
输出:
2018
在此示例中,我们使用了格式代码%Y
。请注意,Y
是大写的。现在以小写形式编写:
print(x.strftime('%y'))
输出:
18
这次,世纪已被省略。如您所见,使用这些格式代码,您几乎可以使用任何格式表示日期时间。
strptime方法将字符串转换为日期
strptime -> 'string, point time'
该strftime
方法帮助我们将日期对象转换为更具可读性的字符串。该strptime
方法的作用与此相反,也就是说,它将字符串转换为Python可以理解的日期对象。
这是该方法的语法:
datetime.strptime(string, format)
该string
参数是我们要转换为日期格式的字符串格式的值。该format
参数是伪指令,指定转换后的日期要采用的格式。
例如,假设我们需要将字符串“ 9/15/18”转换为datetime
对象。
首先导入datetime
模块。我们将使用from
关键字以便能够引用特定的模块功能而不使用点格式:
from datetime import datetime
然后,我们可以以字符串形式定义日期:
str = '9/15/18'
在将其转换为实际datetime
对象之前,Python将无法将上述字符串理解为日期时间。通过调用该strptime
方法,我们可以成功地做到这一点。
执行以下命令来转换字符串:
date_object = datetime.strptime(str, '%m/%d/%y')
现在让我们调用该print
函数以以下datetime
格式显示字符串:
print(date_object)
输出:
2018-09-15 00:00:00
如您所见,转换成功!
您可以看到正斜杠“ /”已用于分隔字符串的各个元素。这告诉strptime
方法我们的日期采用什么格式,在我们的情况下以“ /”作为分隔符。
但是,如果日/月/年用“-”分隔怎么办?这是您的处理方式:
from datetime import datetime
str = '9-15-18'
date_object = datetime.strptime(str, '%m-%d-%y')
print(date_object)
输出:
2018-09-15 00:00:00
再次,由于使用了格式说明符,该strptime
方法能够解析我们的日期并将其转换为日期对象。