返回首页
当前位置: 主页 > 编程语言 > Python教程 >

Python 3-日期和时间

时间:2020-02-08 15:35来源:电脑教程学习网 www.etwiki.cn 编辑:小山哥

Python程序可以通过几种方式处理日期和时间。在日期格式之间进行转换是计算机的常见任务。Python的时间和日历模块有助于跟踪日期和时间。

什么是T

时间间隔是浮点数,以秒为单位。时间的特定时刻以自1970年1月1日上午12:00(纪元)以来的秒数表示。

Python提供了一个流行的时间模块,该模块提供了处理时间以及在表示之间转换的功能。函数time.time()毫秒为单位返回自1970年1月1日(纪元)上午12:00开始的当前系统时间。

现场演示
#!/usr/bin/python3
import time;      # This is required to include time module.

ticks = time.time()
print ("Number of ticks since 12:00am, January 1, 1970:", ticks)

这将产生如下结果-

Number of ticks since 12:00am, January 1, 1970: 1455508609.34375

日期运算很容易用刻度完成。但是,纪元之前的日期不能以这种形式表示。遥远的将来的日期也无法用这种方式表示-对于UNIX和Windows,截止日期是2038年的某个时候。

什么是TimeTuple?

Python的许多时间函数将时间作为9个数字的元组来处理,如下所示-

指数 领域 价值观
0 4位数的年份 2016年
1个 1至12
2 1至31
3 小时 0至23
4 分钟 0至59
5 第二 0到61(60或61是leap秒)
6 星期几 0到6(0是星期一)
7 一年中的一天 1至366(儒略日)
8 夏令时 -1,0,1,-1表示库确定DST

例如-

现场演示
import time

print (time.localtime());

这将产生如下结果-

time.struct_time(tm_year = 2016, tm_mon = 2, tm_mday = 15, tm_hour = 9, 
   tm_min = 29, tm_sec = 2, tm_wday = 0, tm_yday = 46, tm_isdst = 0)

上面的元组等效于struct_time结构。此结构具有以下属性-

指数 属性 价值观
0 tm_year 2016年
1个 tm_mon 1至12
2 tm_mday 1至31
3 tm_hour 0至23
4 tm_min 0至59
5 tm_sec 0到61(60或61是leap秒)
6 tm_wday 0到6(0是星期一)
7 tm_yday 1至366(儒略日)
8 tm_isdst -1,0,1,-1表示库确定DST

获取当前时间

若要将自纪元浮点值以来的秒数转换为时间元组,请将浮点值传递给一个函数(例如localtime),该函数将返回一个具有所有有效九个项目的时间元组。

现场演示
#!/usr/bin/python3
import time

localtime = time.localtime(time.time())
print ("Local current time :", localtime)

这将产生以下结果,可以将其格式化为任何其他可表示形式-

Local current time : time.struct_time(tm_year = 2016, tm_mon = 2, tm_mday = 15, 
   tm_hour = 9, tm_min = 29, tm_sec = 2, tm_wday = 0, tm_yday = 46, tm_isdst = 0)

获取格式化时间

您可以根据需要设置任何时间的格式,但是以可读格式获取时间的简单方法是asctime() -

现场演示
#!/usr/bin/python3
import time

localtime = time.asctime( time.localtime(time.time()) )
print ("Local current time :", localtime)

这将产生以下结果-

Local current time : Mon Feb 15 09:34:03 2016

获取一个月的日历

日历模块提供了使用年度和每月日历的多种方法。在这里,我们打印给定月份(2008年1月)的日历-

现场演示
#!/usr/bin/python3
import calendar

cal = calendar.month(2016, 2)
print ("Here is the calendar:")
print (cal)

这将产生以下结果-

Here is the calendar:
   February 2016
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

时间模块

Python提供了一个流行的时间模块,该模块提供了处理时间以及在表示之间转换的功能。这是所有可用方法的列表。

序号 功能说明
1个 时区

如果已定义,则本地DST时区的偏移量(以UTC为西部的秒数)。如果当地DST时区位于UTC东部(如西欧,包括英国),则为负。如果日光不为零,请使用此选项。

2 time.asctime([tupletime])

接受时间元组并返回可读的24个字符的字符串,例如'Tue Dec 11 18:07:14 2008'。

3 time.clock()

返回当前CPU时间,以秒为单位的浮点数。为了衡量不同方法的计算成本,time.clock的值比time.time()的值更有用。

4 time.ctime([秒])

像asctime(localtime(secs))一样,不带参数就像asctime()

5 time.gmtime([秒])

接受从纪元以来以秒表示的瞬间,并返回带有UTC时间的时间元组t。注意-t.tm_isdst始终为0

6 time.localtime([秒])

接受从纪元以来以秒表示的瞬间,并返回带有本地时间的时间元组t(t.tm_isdst为0或1,具体取决于DST是否适用于本地规则的瞬间秒)。

7 time.mktime(元组时间)

接受以当地时间的时间元组表示的瞬间,并返回一个浮点值,其中的瞬间以秒为单位。

8 time.sleep(secs)

将调用线程暂停几秒钟。

9 time.strftime(fmt [,tupletime])

接受表示为本地时间中的时间元组的瞬间,并返回表示由字符串fmt指定的瞬间的字符串。

10 time.strptime(str,fmt ='%a%b%d%H:%M:%S%Y')

根据格式字符串fmt解析str并以时间元组格式返回瞬时值。

11 time.time()

返回当前时刻,即自该纪元以来的秒数的浮点数。

12 time.tzset()

重置库例程使用的时间转换规则。环境变量TZ指定如何完成此操作。

时间模块有两个重要的属性。他们是-

序号 属性和说明
1个

时区

属性time.timezone是本地时区(不带DST)相对于UTC的偏移量(以秒为单位)(在美洲为> 0;在欧洲,亚洲,非洲的大多数地区为<= 0)。

2

time.tzname

属性time.tzname是一对与语言环境相关的字符串,分别是不带DST和带DST的本地时区的名称。

日历模块

日历模块提供了与日历相关的功能,包括用于打印给定月份或年份的文本日历的功能。

默认情况下,日历将星期一作为一周的第一天,将星期日作为最后一天。要更改此设置,请调用calendar.setfirstweekday()函数。

这是日历模块可用的功能列表-

序号 功能说明
1个

calendar.calendar(year,w = 2,l = 1,c = 6)

返回带有年份日历的多行字符串,该日历的年格式为三列,用c空格分隔。w是每个日期的字符宽度;每行的长度为21 * w + 18 + 2 * c。l是每周的行数。

2

calendar.firstweekday()

返回每周开始的工作日的当前设置。默认情况下,首次导入日历时,该值为0,表示星期一。

3

calendar.isleap(年)

如果year是a年,则返回True;否则返回True。否则为False。

4

calendar.leapdays(y1,y2)

返回年份范围内(y1,y2)的of日总数。

5

calendar.month(year,month,w = 2,l = 1)

返回一个多行字符串,其中包含一年中月份月份的日历,每周一行,外加两行标题行。w是每个日期的字符宽度;每行的长度为7 * w + 6。l是每周的行数。

6

calendar.monthcalendar(年,月)

返回整数列表的列表。每个子列表表示一个星期。一年中月份月份中的天数设置为0;每月中的天数设置为每月的第1天及以后。

7

calendar.monthrange(年,月)

返回两个整数。第一个是年份年中月份月份的第一天的工作日代码;第二个是一个月中的天数。工作日代码为0(星期一)至6(星期日);月数是1到12。

8

calendar.prcal(year,w = 2,l = 1,c = 6)

像打印calendar.calendar(year,w,l,c)。

9

calendar.prmonth(year,month,w = 2,l = 1)

像打印calendar.month(year,month,w,l)。

10

calendar.setfirstweekday(工作日)

将每周的第一天设置为工作日代码工作日。工作日代码为0(星期一)至6(星期日)。

11

calendar.timegm(tupletime)

time.gmtime的逆数:接受以时间元组形式的时刻,并返回与该时刻相距的浮点秒数相同的时刻。

12

calendar.weekday(年,月,日)

返回给定日期的工作日代码。工作日代码为0(星期一)至6(星期日);月份为1月(1月)至12月(12月)。

其他模块和功能

如果您有兴趣,则可以在这里找到其他重要模块和函数的列表,这些模块和函数可以在Python中与日期和时间一起使用-

  • 日期时间模块
  • pytz模块
  • dateutil模块
 上一页  打印页面

------分隔线----------------------------
标签(Tag):
------分隔线----------------------------
推荐内容
  • Python 3-列表

    Python中最基本的数据结构是 序列 。 序列的每个元素都分配有一个数字-其位置或索引。...

  • Python 3-数字

    数字数据类型存储数值。 它们是不可变的数据类型。 这意味着,更改数字数据类型的值将...

  • Python 3-基本运算符

    运算符是构造,可以操纵操作数的值。 考虑表达式4 + 5 =9。这里,4和5称为操作数,而+...

  • Python 3-环境设置

    Python 3适用于Windows,Mac OS和大多数Linux操作系统。 尽管Python 2可用于许多其他...

  • Python 3-概述

    Python是一种高级,解释性,交互式和面向对象的脚本语言。 Python的设计具有很高的可...

  • Python 3教程

    Python是一种通用的解释型,交互式,面向对象的高级编程语言。 它是由Guido van Rossu...

猜你感兴趣