如何在 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 | 本地化等效于 AM 或 PM。 |
%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)。
格式代码是用于指定要表示 datetime 的格式的标准指令。例如,%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 类
time类可用于表示时间值。小时、分钟、秒和微秒是 time 类属性。
语法
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
time 类的实例具有三个实例属性:小时、分钟、秒和微秒。这些用于获取特定时间信息
示例 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 类
可以使用 date 类表示日历日期值。date 实例由年份、月份和日期属性组成。
语法
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
将日期转换为字符串
因为日期和时间与字符串不同,所以经常需要将 datetime 转换为字符串。我们为此使用 strftime() 函数。
语法
time.strftime(format, t)
参数
format- 字符串类型。指令可以包含在格式字符串中
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 中格式化日期和时间。我们还学习了如何通过将日期转换为字符串然后转换回日期来格式化日期。