convert.todatetime指定日期格式_Python格式化时间和日期

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方法能够解析我们的日期并将其转换为日期对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值