在Python中格式化日期
在世界的不同地区,使用了不同类型的日期格式,因此,编程语言通常会提供多种日期格式供开发人员处理。在Python中,它是通过使用称为datetime
的自由来处理的。它由可用于处理数据和时间值的类和方法组成。
要使用它,首先通过以下方式导入日期时间库:
import datetime
我们可以在日期时间中有以下组件:
- 时间班
时间值可以使用时间类来表示。时间类的属性包括小时、分钟、秒和微秒。一个时间示例如下:
句法:
time(hour, minute, second, microsecond)
例子:
import datetime tm = datetime.time(2, 25, 50, 13) print(tm)
输出
02:25:50.000013
时间属性有范围,即秒的范围在 0 到 59 之间,纳秒的范围在 0 到 999999 之间。如果超出范围,编译器会显示
ValueError
。时间类的实例由小时、分钟、秒和微秒三个实例属性组成。这些用于获取有关时间的特定信息。
例子:
import datetime tm = datetime.time(1, 50, 20, 133257) print('Time tm is ', tm.hour, ' hours ', tm.minute, ' minutes ', tm.second, ' seconds and ', tm.microsecond, ' microseconds' )
输出
Time tm is 1 hours 50 minutes 20 seconds and 133257 microseconds
- 日期类
日历日期的值可以通过日期类表示。日期实例由年、月和日的属性组成。
句法:
date(yyyy, mm, dd)
例子:
import datetime date = datetime.date(2018, 5, 12) print('Date date is ', date.day, ' day of ', date.month, ' of the year ', date.year)
输出
Date date is 12 day of 5 of the year 2018
为了获取今天的日期名称,使用了一个名为today()的方法,并使用了
ctime()
方法来获取一个对象中的所有信息(今天的信息)。例子:
import datetime tday = datetime.date.today() daytoday = tday.ctime() print("The date today is ", tday) print("The date info. is ", daytoday)
输出
The date today is 2020-01-30 The date info. is Thu Jan 30 00:00:00 2020
将日期转换为字符串
日期和时间与字符串不同,因此很多时候将日期时间转换为字符串很重要。为此,我们使用strftime()
方法。
句法:
time.strftime(format, t)
参数:
- 格式——这是字符串类型。即指令可以嵌入到格式字符串中。
- t——要格式化的时间。
例子:
import datetime
x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
print(x.strftime("%b %d %Y %H:%M:%S"))
输出
May 12 2018 02:25:50
通过设置print()
方法,同样的例子也可以写成不同的地方。
import datetime
x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13)
print(x.strftime("%H:%M:%S %b %d %Y"))
输出
02:25:50 May 12 2018
%H、%M 和 %S 分别显示小时、分钟和秒。 %b、%d 和 %Y 分别显示月、日、年 3 个字符。
除了上面的例子之外,常用的字符代码列表及其功能还有:
- %a:显示工作日的三个字符,例如 Wed。
import datetime x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13) print(x.strftime("%a"))
输出
Sat
- %A:显示工作日的名称,例如星期三。
import datetime x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13) print(x.strftime("%A"))
输出
Saturday
- %B:显示月份,例如五月。
import datetime x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13) print(x.strftime("%B"))
输出
May
- %w:将工作日显示为数字,从 0 到 6,其中星期日为 0。
import datetime x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13) print(x.strftime("%w"))
输出
6
- %m:将月份显示为数字,从 01 到 12。
import datetime x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13) print(x.strftime("%m"))
输出
5
- %p:为时间定义 AM/PM。
import datetime x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13) print(x.strftime("%p"))
输出
PM
- %y:以两位数格式显示年份,即“20”代替“2020”。
import datetime x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13) print(x.strftime("% y"))
输出
18
- %f:显示从 000000 到 999999 的微秒。
import datetime x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13) print(x.strftime("% f"))
输出
000013
- %j:显示一年中的第几天,从 001 到 366。
import datetime x = datetime.datetime(2018, 5, 12, 2, 25, 50, 13) print(x.strftime("%f"))
输出
132
从字符串到日期的转换
在处理从 csv 导入的数据集或从网站表单获取输入时,需要多次将字符串转换为日期。为此, Python提供了一个名为strptime()的方法。
句法:
datetime.strptime(string, format)
参数:
- 字符串 –输入字符串。
- 格式——这是字符串类型。即指令可以嵌入到格式字符串中。
例子:
from datetime import datetime
print(datetime.strptime('5/5/2019',
'%d/%m/%Y'))
输出
2019-05-05 00:00:00