Python教程-Python 日期和时间
Python 提供了 datetime 模块用于处理真实的日期和时间。在现实世界的应用中,我们需要处理日期和时间。Python 允许我们安排 Python 脚本在特定时间运行。
在 Python 中,日期不是一种数据类型,但我们可以通过导入 datetime、time 和 calendar 模块来处理日期对象。
在本教程的这部分中,我们将讨论如何在 Python 中处理日期和时间对象。
datetime 类被分为六个主要类别。
- date - 这是一个纯粹的理想日期。它包含年、月和日作为属性。
- time - 这是一个完美的时间,假设每天都精确地有 246060 秒。它有小时、分钟、秒、微秒和 tzinfo 作为属性。
- datetime - 这是日期和时间的组合,还包括年、月、日、小时、分钟、秒、微秒和 tzinfo 属性。
- timedelta - 它表示两个日期、时间或日期时间实例之间的差值,以微秒为分辨率。
- tzinfo - 它提供时区信息对象。
- timezone - 它包含在 Python 的新版本中。这是实现 tzinfo 抽象基类的类。
刻度(Tick)
在 Python 中,时间点从1970年1月1日凌晨12点开始计算。模块 time 的 time() 函数返回自1970年1月1日凌晨12点以来经过的总刻度数。刻度可以被看作是衡量时间的最小单位。
考虑以下示例
import time;
#prints the number of ticks spent since 12 AM, 1st January 1970
print(time.time())
输出:
1585928913.6519969
如何获取当前时间?
模块 time 的 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个数字的元组。让我们看一下时间元组的成员。
索引 | 属性 | 值 |
---|---|---|
0 | 年 | 4 位数(例如 2018) |
1 | 月 | 1 到 12 |
2 | 日 | 1 到 31 |
3 | 小时 | 0 到 23 |
4 | 分钟 | 0 到 59 |
5 | 秒 | 0 到 60 |
6 | 周的天数 | 0 到 6 |
7 | 年的天数 | 1 到 366 |
8 | 夏令时 | -1、0、1 或 -1 |
获取格式化的时间
时间可以通过使用 time 模块的 asctime() 函数进行格式化。它返回传递的时间元组的格式化时间。
示例
import time
#returns the formatted time
print(time.asctime(time.localtime(time.time())))
输出:
Tue Dec 18 15:31:39 2018
Python 的睡眠时间
time 模块的 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 模块。
考虑以下示例,以获取当前时间的 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)<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
打印整年的日历
日历模块的 prcal() 方法用于打印整年的日历。必须将要打印日历的年份传递给该方法。
示例
import calendar
#printing the calendar of the year 2019
s = calendar.prcal(2020)
输出: