📅  最后修改于: 2020-10-24 09:20:54             🧑  作者: Mango
Python提供了带有实际日期和时间的datetime模块。在实际的应用程序中,我们需要处理日期和时间。 Python使我们能够安排Python脚本在特定时间运行。
在Python,日期不是数据类型,但是我们可以通过导入以datetime,time和calendar命名的模块来使用date对象。
在本教程的这一部分中,我们将讨论如何在Python使用日期和时间对象。
日期时间类分为六个主要类。
在Python,从1970年1月1日凌晨12点开始计时。模块时间函数time()返回自1970年1月1日凌晨12点以来花费的滴答声总数。滴答声可以看作是最小的单位测量时间。
考虑下面的例子
import time;
#prints the number of ticks spent since 12 AM, 1st January 1970
print(time.time())
输出:
1585928913.6519969
时间模块的localtime()函数用于获取当前时间元组。考虑以下示例。
例
import time;
#returns a time tuple
print(time.localtime(time.time()))
输出:
time.struct_time(tm_year=2020, tm_mon=4, tm_mday=3, tm_hour=21, tm_min=21, tm_sec=40, tm_wday=4, tm_yday=94, tm_isdst=0)
时间被视为9个数字的元组。让我们看一下时间元组的成员。
Index | Attribute | Values |
---|---|---|
0 | Year | 4 digit (for example 2018) |
1 | Month | 1 to 12 |
2 | Day | 1 to 31 |
3 | Hour | 0 to 23 |
4 | Minute | 0 to 59 |
5 | Second | 0 to 60 |
6 | Day of weak | 0 to 6 |
7 | Day of year | 1 to 366 |
8 | Daylight savings | -1, 0, 1 , or -1 |
可以使用时间模块的asctime()函数来格式化时间。它返回经过的时间元组的格式化时间。
例
import time
#returns the formatted time
print(time.asctime(time.localtime(time.time())))
输出:
Tue Dec 18 15:31:39 2018
时间模块的sleep()方法用于在给定的时间内停止脚本的执行。输出将延迟浮动提供的秒数。
考虑以下示例。
例
import time
for i in range(0,5):
print(i)
#Each element will be printed after 1 second
time.sleep(1)
输出:
0
1
2
3
4
datetime模块使我们能够创建自定义日期对象,对日期执行各种操作,例如比较等。
要将日期用作日期对象,我们必须将datetime模块导入Python源代码。
考虑以下示例,以获取当前时间的datetime对象表示形式。
例
import datetime
#returns the current datetime object
print(datetime.datetime.now())
输出:
2020-04-04 13:18:35.252578
我们可以在要为其创建日期对象的datetime构造函数中绕过所需的日期来创建日期对象。
考虑以下示例。
例
import datetime
#returns the datetime object for the specified date
print(datetime.datetime(2020,04,04))
输出:
2020-04-04 00:00:00
我们还可以指定时间和日期,以创建datetime对象。考虑以下示例。
例
import datetime
#returns the datetime object for the specified time
print(datetime.datetime(2020,4,4,1,26,40))
输出:
2020-04-04 01:26:40
在上面的代码中,我们以顺序的方式传递了datetime()函数的年,月,日,小时,分钟和毫秒属性。
我们可以通过使用比较运算符等>比较两个日期,> =,<,和<=。
考虑以下示例。
例
from datetime import datetime as dt
#Compares the time. If the time is in between 8AM and 4PM, then it prints working hours otherwise it prints fun hours
if dt(dt.now().year,dt.now().month,dt.now().day,8)
输出:
fun hours
Python提供了一个日历对象,其中包含使用日历的各种方法。
考虑以下示例以print2018年最后一个月的日历。
例
import calendar;
cal = calendar.month(2020,3)
#printing the calendar of December 2018
print(cal)
输出:
March 2020
Mo Tu We Th Fr Sa Su
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
日历模块的prcal()方法用于print全年的日历。必须将要打印日历的年份传递给此方法。
例
import calendar
#printing the calendar of the year 2019
s = calendar.prcal(2020)
输出: