Python 日期时间、时间Delta、Strftime(Format) 示例
⚡ 智能摘要
Python datetime 类以及 date、time 和 timedelta 类,将日期、时间和时间间隔作为对象进行处理。datetime 模块使用 strftime() 函数格式化输出,解析字符串,并使用 timedelta 运算计算未来或过去的时间点。

In Python, 日期、时间和日期时间 类提供了许多处理日期、时间和时间间隔的函数。日期和日期时间 Python 日期和时间都是对象,因此当你操作它们时,实际上是在操作对象,而不是字符串或时间戳。无论何时需要操作日期或时间,都需要导入 datetime 模块。
日期时间类 Python 分为 5 个主要类别。
- 日期 – 仅操作日期(月、日、年)
- 时间 – 与日期无关的时间(时、分、秒、微秒)
- datetime – 时间和日期的组合(月、日、年、时、秒、微秒)
- timedelta— 用于操作日期的持续时间
- tzinfo— 绝对值tract 类用于处理时区
如何使用日期和日期时间类
第四步)在运行日期时间格式的代码之前 Python,导入 Python 日期时间模块,如下面的屏幕截图所示。
这些导入语句是 Python 这是一个可以让你无需编写任何代码即可操作日期和时间的库。
在执行之前请考虑以下几点 Python 日期时间格式代码
from datetime import date
这句话告诉 Python 解释器从 datetime 模块导入日期类 Python我们没有编写此日期功能的代码,只是将其导入供我们使用。
使用 date.today() 打印日期
date.today() 函数有多个相关属性。我们可以打印具体的日期/月份/年份以及其他许多信息。
让我们看一个例子
今日工作日号码
date.today() 函数还可以返回星期几。以下是星期几表,以……开头。 Monday 周日为 0,周日为 6。
| 天 | 星期数 |
|---|---|
| Monday | 0 |
| 星期二 | 1 |
| 星期三 | 2 |
| 星期四 | 3 |
| 星期五 | 4 |
| 星期六 | 5 |
| 星期日 | 6 |
星期数对于索引取决于星期几的数组很有用。
第四步)接下来,我们创建一个日期对象的实例。
第四步)接下来,我们打印日期并运行代码。
输出结果符合预期。
Python 当前日期和时间:now() today()
步骤1) 像日期对象一样,我们也可以使用 “日期时间对象” in Python. Python 日期和时间对象提供日期和时间 小时、分钟、秒和毫秒。
当我们执行日期时间的代码时,它会给出当前日期和时间的输出。
步骤2) 使用“DATETIME 对象”,您也可以调用时间类。假设我们只想打印当前时间,而不包含日期。
t = datetime.time(datetime.now())
- 我们已经导入了时间类。我们将使用 datetime.now() 为其分配当前时间值
- 我们将当前时间的值分配给变量 t。
这会给我足够的时间。让我们运行这个程序。
好的,您可以看到这里我获取了日期和时间。然后下一行,我只获取了时间。
步骤3) 我们将对星期几索引器应用到星期几数组列表中,以确定今天是星期几。
- 工作日运算符 (wd) 根据当前是星期几而被赋予 0 到 6 之间的数字。这里我们声明了一个包含星期几列表的数组(星期一、星期二、星期三……星期日)。
- 使用该索引值可以知道是哪一天。在我们的例子中,它是 #2,代表星期三,因此在输出中它将打印出“哪一天是星期三”。
以下是使用 datetime 获取当前日期和时间的完整代码
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print (today) # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd=date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print("Today is day number %d" % wd) print("which is a " + days[wd]) if __name__== "__main__": main()
如何使用 Strftime() 格式化日期和时间输出
到目前为止,我们已经学习了如何使用 datetime 和 date 属性。 对象在 Python。我们将更进一步学习如何使用格式化函数来格式化时间和日期。
步骤1) 首先我们来看看如何格式化年份的简单步骤。举个例子会更容易理解。
- 我们所使用的 “strftime 函数” 用于格式化。
- 该函数使用不同的 控制码 给出输出。
- 每个控制代码都对应不同的参数,例如年、月、星期几和日期。 [(%y/%Y – 年), (%a/%A- 星期几), (%b/%B- 月份), (%d – 月份中的某一天)]。
- 在我们的例子中, (“%Y”) 与年份类似,它打印出带世纪的完整年份(例如,2018 年)。
步骤2) 现在,如果你将(“%Y”)替换为小写,即(“%y”)并执行代码,则输出将仅显示(18)而不是(2018)。年份的世纪将不会显示,如下面的屏幕截图所示
步骤3) strf 函数可以分别声明日期、星期、月份和年份。此外,只需对 strftime 函数中的控制代码进行少量修改,即可设置文本样式。
在 strftime 函数内部,如果将 (%a) 替换为大写字母 A,即 (%A),则输出将打印为“Friday”,而不是缩写“Fri”。
步骤4) 借助“Strftime”函数,我们还可以检索本地系统时间、日期或两者。
- %C- 表示当地日期和时间
- %x- 表示当地日期
- %X- 表示当地时间
在输出中,你可以看到预期的结果
步骤5) “strftime 函数”允许您以 24 小时或 12 小时任意格式调用时间。
只需定义控制代码,如 %I/H 表示小时、%M 表示分钟、%S 表示秒,就可以调用不同格式的时间
完成。 时间声明 [print now.strftime(“%I:%M:%S %p) ]
完成。 时间声明 [print now.strftime(“%H:%M”)]
以下是将日期时间转换为字符串对象的完整代码。
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM print(now.strftime("%H:%M")) # 24-Hour:Minute if __name__== "__main__": main()
Timedelta 是什么 Python?
时间增量 Python 是一个表示持续时间的对象。它主要用于计算两个日期和时间之间的持续时间。它还用于检索具有特定日期和时间差的对象。timedelta 对象支持加法、减法等数学运算。trac运算、乘法、除法等。
如何使用 Timedelta 对象
与 Python timedelta 对象,您可以估计未来和过去的时间。 换句话说,它是预测任何特殊日子、日期或时间的时间跨度。
请记住,此功能不是用于打印时间或日期,而是用于计算未来或过去我们来看一个 Python timedelta 示例以便更好地理解它。
步骤1) 要运行 Timedelta 对象,您需要先声明 import 语句,然后执行代码
- 为 timedelta 编写导入语句
- 现在编写代码来根据时间增量打印出对象,如屏幕截图所示
- 运行代码。timedelta 代表 365 天、8 小时和 15 分钟的跨度,并打印相同的内容
困惑吗?下一步会有所帮助-
步骤2) 让我们获取今天的日期和时间来检查我们的导入语句是否运行正常。执行代码时,它会打印出今天的日期,这意味着我们的导入语句运行正常
步骤3) 我们将了解如何通过 delta 对象检索一年后的日期。当我们运行代码时,它会给出预期的输出。
步骤4) 另一个关于如何使用时间增量从当前日期和时间计算未来日期的示例
步骤5) 让我们看一个更复杂的例子。我想确定新年过去了多少天。我们将按以下方式进行
- 使用 today= date.today() 我们将获得今天的日期
- 我们知道新年总是在 1 月 1,1 日,但年份可能不同。使用 nyd= date(today.year,XNUMX),我们将新年存储在变量 nyd 中
- 如果 nyd < today:比较当前日期是否大于新年。如果是,则进入 while 循环。
- ((today-nyd).days) 给出当前日期与新年之间的差值(以天为单位)
输出结果显示“元旦已经过去11天了”。
这是完整的工作代码
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print (timedelta(days=365, hours=8, minutes=15)) # print today's date print ("today is: " + str(datetime.now())) # print today's date one year from now print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365))) # create a timedelta that uses more than one argument # print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print ("New Year day is already went by %d days ago" % ((today - nyd).days))
Python 2示例
以下示例展示了针对相同日期和时间操作编写的代码。 Python 2,其中 print 是一个语句而不是函数。仅在维护旧版本时使用这些版本。 Python 2 代码。
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print today # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd = date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print "Today is day number %d" % wd print "which is a " + days[wd] if __name__== "__main__": main()
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print now.strftime("%c") print now.strftime("%x") print now.strftime("%X") ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM print now.strftime("%H:%M") # 24-Hour:Minute if __name__== "__main__": main()
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print timedelta(days=365, hours=8, minutes=15) # print today's date print "today is: " + str(datetime.now()) # print today's date one year from now print "one year from now it will be:" + str(datetime.now() + timedelta(days=365)) # create a timedelta that uses more than one argument # print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print "New Year day is already went by %d days ago" % ((today - nyd).days)



















