Python 日期和时间
Python提供了 datetime 模块与实际日期和时间一起工作。在实际应用中,我们需要使用日期和时间。Python使我们能够安排Python脚本在特定时间运行。
在Python中,日期不是一种数据类型,但我们可以通过导入 datetime、time和calendar 模块来使用日期对象。
在本教程的本节中,我们将讨论如何在Python中使用日期和时间对象。
datetime 类被分为六个主要类别。
- date - 它是一个理想化的日期。它由年、月和日组成。
- time - 它是一个完美的时间,假设每天有精确的246060秒。它具有小时、分钟、秒、微秒和 tzinfo 等属性。
- datetime - 它是日期和时间的组合,包括年、月、日、小时、分钟、秒、微秒和tzinfo等属性。
- timedelta - 它表示两个日期、时间或datetime实例之间的差异,以微秒为分辨率。
- tzinfo - 它提供时区信息对象。
- timezone - 它包含在Python的新版本中。它是实现 tzinfo 抽象基类的类。
Tick
在Python中,时间瞬间是从1970年1月1日凌晨12点开始计算的。模块time的 time() 函数返回从1970年1月1日凌晨12点开始的总时间数。Tick可以看作是测量时间的最小单位。
考虑以下示例。
import time;
#prints the number of ticks spent since 12 AM, 1st January 1970
print(time.time())
输出:
1585928913.6519969
如何获取当前时间
time模块的localtime()函数用于获取当前时间tuple。请考虑以下示例。
示例
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
Python等待时间
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
日期时间模块
日期时间模块允许我们创建自定义日期对象,执行诸如比较等各种日期操作。
要将日期作为日期对象进行处理,我们必须将日期时间模块导入到Python源代码中。
请考虑以下示例,以获取当前时间的日期时间对象表示。
示例
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)<dt.now()<dt(dt.now().year,dt.now().month,dt.now().day,16):
print("Working hours....")
else:
print("fun hours")
输出结果:
fun hours
日历模块
Python提供了一个包含各种方法来处理日历的日历对象。
考虑以下示例,以打印2018年最后一个月的日历。
示例
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
打印整年的日历
calendar模块的prcal()方法用于打印整个年份的日历。需要将要打印日历的年份传递给该方法。
示例
import calendar
#printing the calendar of the year 2019
s = calendar.prcal(2020)
输出: