📜  Python中的日期

📅  最后修改于: 2020-10-24 09:20:54             🧑  作者: Mango

Python日期和时间

Python提供了带有实际日期和时间的datetime模块。在实际的应用程序中,我们需要处理日期和时间。 Python使我们能够安排Python脚本在特定时间运行。

在Python,日期不是数据类型,但是我们可以通过导入以datetime,time和calendar命名的模块来使用date对象。

在本教程的这一部分中,我们将讨论如何在Python使用日期和时间对象。

日期时间类分为六个主要类。

  • 日期-这是一个幼稚的理想日期。它由年,月和日组成。
  • 时间-这是一个完美的时间,假设每天恰好有24 * 60 * 60秒。它具有小时,分钟,秒,微秒和tzinfo作为属性。
  • datetime-日期和时间的分组,以及年,月,日,小时,分钟,秒,微秒和tzinfo的属性。
  • timedelta-它表示两个日期,时间或日期时间实例之间的差异,以微秒为单位。
  • tzinfo-它提供时区信息对象。
  • 时区-包含在新版本的Python。它是实现tzinfo抽象基类的类。

在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

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

日期时间模块

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)

输出: