Python 日期和时间

发布于 2024-10-04 22:10:21 字数 10500 浏览 11 评论 0

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

什么是 T

时间间隔是浮点数,以秒为单位。时间的特定瞬间以自 1970 年 1 月 1 日(纪元) 00:00:00 开始的秒数表示。

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

例子

现场演示

#!/usr/bin/python
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: 7186862.73399

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

什么是 TimeTuple?

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

IndexFieldValues
04-digit year2008
1Month1 to 12
2Day1 to 31
3Hour0 to 23
4Minute0 to 59
5Second0 to 61 (60 or 61 are leap-seconds)
6Day of Week0 to 6 (0 is Monday)
7Day of year1 to 366 (Julian day)
8Daylight savings-1, 0, 1, -1 means library determines DST

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

IndexAttributesValues
0tm_year2008
1tm_mon1 to 12
2tm_mday1 to 31
3tm_hour0 to 23
4tm_min0 to 59
5tm_sec0 to 61 (60 or 61 are leap-seconds)
6tm_wday0 to 6 (0 is Monday)
7tm_yday1 to 366 (Julian day)
8tm_isdst-1, 0, 1, -1 means library determines DST

获取当前时间

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

现场演示

#!/usr/bin/python
import time;

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

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

Local current time : time.struct_time(tm_year=2013, tm_mon=7, 
tm_mday=17, tm_hour=21, tm_min=26, tm_sec=3, tm_wday=2, tm_yday=198, tm_isdst=0)

获取格式化时间

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

现场演示

#!/usr/bin/python
import time;

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

这将产生以下结果-

Local current time : Tue Jan 13 10:17:09 2009

获取一个月的日历

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

现场演示

#!/usr/bin/python
import calendar

cal = calendar.month(2008, 1)
print "Here is the calendar:"
print cal

这将产生以下结果-

Here is the calendar:
   January 2008
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

时间模块

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

Sr.No.Function with Description
1time.altzone

The offset of the local DST timezone, in seconds west of UTC, if one is defined. This is negative if the local DST timezone is east of UTC (as in Western Europe, including the UK). Only use this if daylight is nonzero.

2time.asctime([tupletime])

Accepts a time-tuple and returns a readable 24-character string such as ‘Tue Dec 11 18:07:14 2008’.

3time.clock( )

Returns the current CPU time as a floating-point number of seconds. To measure computational costs of different approaches, the value of time.clock is more useful than that of time.time().

4time.ctime([secs])

Like asctime(localtime(secs)) and without arguments is like asctime( )

5time.gmtime([secs])

Accepts an instant expressed in seconds since the epoch and returns a time-tuple t with the UTC time. Note : t.tm_isdst is always 0

6time.localtime([secs])

Accepts an instant expressed in seconds since the epoch and returns a time-tuple t with the local time (t.tm_isdst is 0 or 1, depending on whether DST applies to instant secs by local rules).

7time.mktime(tupletime)

Accepts an instant expressed as a time-tuple in local time and returns a floating-point value with the instant expressed in seconds since the epoch.

8time.sleep(secs)

Suspends the calling thread for secs seconds.

9time.strftime(fmt[,tupletime])

Accepts an instant expressed as a time-tuple in local time and returns a string representing the instant as specified by string fmt.

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

Parses str according to format string fmt and returns the instant in time-tuple format.

11time.time( )

Returns the current time instant, a floating-point number of seconds since the epoch.

12time.tzset()

Resets the time conversion rules used by the library routines. The environment variable TZ specifies how this is done.

让我们简要地介绍一下功能-

时间模块提供以下两个重要属性-

Sr.No.Attribute with Description
1

time.timezone

Attribute time.timezone is the offset in seconds of the local time zone (without DST) from UTC (>0 in the Americas; <=0 in most of Europe, Asia, Africa).

2

time.tzname

Attribute time.tzname is a pair of locale-dependent strings, which are the names of the local time zone without and with DST, respectively.

日历模块

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

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

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

Sr.No.Function with Description
1

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

Returns a multiline string with a calendar for year year formatted into three columns separated by c spaces. w is the width in characters of each date; each line has length 21*w+18+2*c. l is the number of lines for each week.

2

calendar.firstweekday( )

Returns the current setting for the weekday that starts each week. By default, when calendar is first imported, this is 0, meaning Monday.

3

calendar.isleap(year)

Returns True if year is a leap year; otherwise, False.

4

calendar.leapdays(y1,y2)

Returns the total number of leap days in the years within range(y1,y2).

5

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

Returns a multiline string with a calendar for month month of year year, one line per week plus two header lines. w is the width in characters of each date; each line has length 7*w+6. l is the number of lines for each week.

6

calendar.monthcalendar(year,month)

Returns a list of lists of ints. Each sublist denotes a week. Days outside month month of year year are set to 0; days within the month are set to their day-of-month, 1 and up.

7

calendar.monthrange(year,month)

Returns two integers. The first one is the code of the weekday for the first day of the month month in year year; the second one is the number of days in the month. Weekday codes are 0 (Monday) to 6 (Sunday); month numbers are 1 to 12.

8

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

Like print calendar.calendar(year,w,l,c).

9

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

Like print calendar.month(year,month,w,l).

10

calendar.setfirstweekday(weekday)

Sets the first day of each week to weekday code weekday. Weekday codes are 0 (Monday) to 6 (Sunday).

11

calendar.timegm(tupletime)

The inverse of time.gmtime: accepts a time instant in time-tuple form and returns the same instant as a floating-point number of seconds since the epoch.

12

calendar.weekday(year,month,day)

Returns the weekday code for the given date. Weekday codes are 0 (Monday) to 6 (Sunday); month numbers are 1 (January) to 12 (December).

其他模块和功能

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84959 人气
更多

推荐作者

忆伤

文章 0 评论 0

眼泪也成诗

文章 0 评论 0

zangqw

文章 0 评论 0

旧伤慢歌

文章 0 评论 0

qq_GlP2oV

文章 0 评论 0

旧时模样

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文