如何在Python中获得格式化的日期和时间?
在本文中,我们将展示如何在Python中格式化日期和时间。
在Python中,datetime模块提供了处理日期和时间值的方法。要使用这个模块,我们首先必须使用下面的import关键字导入它。
import datetime
strftime函数()
strftime()函数 返回一个格式化的日期和时间。它接受一个格式字符串,您可以使用它来获得您想要的结果。以下是它支持的指令。
指令 | 含义 |
---|---|
%a | 本地缩写的星期名字 |
%B | 本地完整的月份名字 |
%c | 本地适当的日期和时间表示 |
%d | 日期月份的第几天,以十进制数表示 [01,31] |
%H | 小时数(24小时制),以十进制数表示 [00,23] |
%I | 小时数(12小时制),以十进制数表示 [01,12] |
%m | 月份,以十进制数表示 [01,12] |
%M | 分钟数,以十进制数表示 [00,59] |
%p | 本地对应的上午或下午 |
%S | 秒数,以十进制数表示 [00,61] |
%U | 一年中的周数(以星期日为一周的第一天),以十进制数表示 [00,53]。新年先于第一个星期日的所有日期被视为第0周。 |
%w | 星期几,以十进制数表示 [0(星期日),6] |
%W | 一年中的周数(以星期一为一周的第一天),以十进制数表示 [00,53]。新年先于第一个星期一的所有日期被视为第0周。 |
%x | 本地适当的日期表示 |
%X | 本地适当的时间表示 |
%y | 百位数省略的年份,以十进制数表示 [00,99] |
%Y | 百位数不省略的年份,以十进制数表示 |
%Z | 时区名称(如果没有时区则无字符) |
%% | 一个字面上的“%”字符 |
datetime类的Strftime()函数
使用一个 date 、 time 或 datetime 对象,strftime()方法返回一个表示日期和时间的字符串。
要使用指定的格式将datetime对象转换为字符串,使用datetime.strftime(format)函数。
格式代码是用于指定要表示日期时间的格式的标准指令。例如,%d-%m-%Y%H:%M:%S代码将日期转换为dd-mm-yyyy hh:mm:ss格式。
示例
from datetime import datetime
# getting the current date and time
current_datetime = datetime.now()
# getting the year from the current date and time
current_year = current_datetime.strftime("%Y")
print("current year = ", current_year)
# getting the month from the current date and time
current_month = current_datetime.strftime("%m")
print("current month = ", current_month)
# getting the day/date from the current date and time
current_day = current_datetime.strftime("%d")
print("current day = ", current_day)
# getting the time from the current date and time in the given format
current_time = current_datetime.strftime("%H:%M:%S")
print("current time = ", current_time)
# getting the date and time from the current date and time in the given format
current_date_time = current_datetime.strftime("%m/%d/%Y, %H:%M:%S")
print("current date and time = ",current_date_time)
输出
current year = 2022
current month = 08
current day = 15
current time = 17:49:46
current date and time = 08/15/2022, 17:49:46
注意 : 如果程序在在线编辑器上运行,则显示GMT时间,而如果程序在本地系统编辑器上运行,则显示自己所在的时间。
时间类
时间类可以用来表示时间值。小时、分钟、秒和微秒是时间类的属性。
语法
time(hour, minute, second, microsecond)
例子1
import datetime
# formating time
format_time = datetime.time(3, 12, 24, 10)
print(format_time)
输出
03:12:24.000010
有时间属性范围,例如,秒的范围是0到59,纳秒的范围是0到999999。如果范围太大,编译器会显示一个ValueError错误
时间类的实例有三个实例属性:小时,分钟,秒和微秒。这些用于获取特定的时间信息
例2
import datetime
# formating time
format_time = datetime.time(3, 12, 24, 10)
# Printing time in the formating of time attributes
print('Time:',
format_time.hour,' hours ',
format_time.minute,' minutes ',
format_time.second,'seconds and ',
format_time.microsecond,'microseconds' )
输出
Time: 3 hours 12 minutes 24 seconds and 10 microseconds
日期类
可以使用日期类来表示日历日期的值。日期实例由年、月和日属性组成。
语法
date(yyyy, mm, dd)
示例1
import datetime
# formating date
format_date = datetime.date(2005, 4, 16)
# Printing date in the formating of date attributes
print('Date:', format_date.day,
'day,', format_date.month,
'month and', format_date.year, 'year')
输出
Date: 16 day, 4 month and 2005 year
将日期转换为字符串
因为日期和时间与字符串不同,所以经常需要将日期时间转换为字符串。我们使用 strftime() 函数来实现这个目的。
语法
time.strftime(format, t)
参数
format - String类型。指令可以包含在格式字符串中。
time - 需要格式化的时间
例子
import datetime
# formating date and time
format_datetime = datetime.datetime(2005, 4, 16, 3, 22, 30, 8)
# Printing date & time in the formating of date and time attributes
print(format_datetime.strftime("%b %d %Y %H:%M:%S"))
输出
Apr 16 2005 03:22:30
符号%H、%M和%S分别表示小时,分钟和秒。字符%b,%d和%Y分别表示月,日和年。
将字符串转换为日期
当使用CSV导入的数据集或从网站表单接收输入时,经常需要将字符串转换为日期。 Python有一个名为strptime()的函数可以实现这一目的。
语法
datetime.strptime(string, format)
参数
string - 应该被格式化的字符串
format - 字符串类型。格式字符串中可以包含指令。
示例
from datetime import datetime
# converting input string to date format(date-month-year format)
print(datetime.strptime('16/5/2005', '%d/%m/%Y'))
输出
2005-05-16 00:00:00
结论
我们学习了如何使用datetime模块在Python中格式化日期和时间。我们还学习了如何通过将日期转换为字符串然后再转回日期来格式化日期。