python-time模块

1、概述

1.1、提供时间各种相关内容。有关相关功能,另请参阅datetime和calendar模块。

1.2、表示时间通常有两种方式

  一、时间戳  即从1970年1月1日00:00:00开始按秒计算的偏移量

  二、 该语言自己的数据结构。Python中表示时间的数据结构元组,共有九个元素, 即:

    (tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)

1.3、UTC是协调世界时(以前称为格林威治标准时间,或GMT)。首字母缩略词UTC不是一个错误,而是英语和法语之间的妥协。

1.4、DST是夏令时,在一部分时间内通过(通常)一个小时调整时区。DST规则是魔法(由当地法律确定),并且可以逐年改变。C库有一个包含本地规则的表(通常它是从系统文件中读取的,以获得灵活性),并且是真正智慧在这方面的唯一来源。

 

2、模块变量

2.1、time.altzone

默认情况返回一个以秒为单位UTC的本地DST时区偏移量,如果本地DST时区在UTC的东部(如在西欧,包括英国),则为负。仅在daylight非零时使用此选项。

实例:

input:
print(time.altzone)

output:
-32400

 

 

 2.2、time.timezone

本地(非DST)时区的偏移量,以UTC以内的秒为单位(西欧大部分地区为负,美国为正,英国为零)。

实例:

input:
print(time.timezone)

output:
-28800

 

 

 2.3 time.daylight

当地时间是否反映夏令时,默认为0

实例:

input:
print(time.daylight)

output:
0

 

 

 2.4 time.tzname

两个字符串的元组:第一个是本地非DST时区的名称,第二个是本地DST时区的名称。如果未定义DST时区,则不应使用第二个字符串。

 

3、模块方法

3.1、time.time()

返回时间戳,以秒为单位返回作为浮点数的时间

实例:

input:
print(time.time())

output:
1572317083.5382848

 

 

3.2 time.localtime([seconds])

输入时间戳,默认当前时间,返回时间元组。像gmtime()但转换为本地时间。如果未提供secs或None,则使用由time()返回的当前时间。当DST适用于给定时间时,dst标志设置为1。

  time.gmtime([seconds])

输入时间戳,默认当前时间,返回时间元组将从纪元开始以秒表示的时间转换为UTC中的struct_time,其中dst标志始终为零

 

 我们是东8时区,比世界标准时间早8个小时

实例:

input:
now = time.time()
now_localtime = time.localtime(now)
now_gmtime = time.gmtime(now)
localtime = time.localtime(1545657766)
gmtime = time.gmtime(1545776566)
print("now_localtime:%s \nnow_gmtime:%s \nlocatime:%s \ngmtime:%s "\
      % (now_localtime, now_gmtime, localtime, gmtime))
print(now_localtime.tm_mday,now_localtime.tm_mon)

output:
now_localtime:time.struct_time(tm_year=2019, tm_mon=10, tm_mday=29, tm_hour=11, tm_min=4, tm_sec=14, tm_wday=1, tm_yday=302, tm_isdst=0) 
now_gmtime:time.struct_time(tm_year=2019, tm_mon=10, tm_mday=29, tm_hour=3, tm_min=4, tm_sec=14, tm_wday=1, tm_yday=302, tm_isdst=0) 
locatime:time.struct_time(tm_year=2018, tm_mon=12, tm_mday=24, tm_hour=21, tm_min=22, tm_sec=46, tm_wday=0, tm_yday=358, tm_isdst=0) 
gmtime:time.struct_time(tm_year=2018, tm_mon=12, tm_mday=25, tm_hour=22, tm_min=22, tm_sec=46, tm_wday=1, tm_yday=359, tm_isdst=0) 
29 10

 

time.struct_time 

IndexAttributeValues
0 tm_year (for example, 1993)
1 tm_mon range [1, 12]
2 tm_mday range [1, 31]
3 tm_hour range [0, 23]
4 tm_min range [0, 59]
5 tm_sec range [0, 61]; see (2) in strftime()description
6 tm_wday range [0, 6], Monday is 0
7 tm_yday range [1, 366]
8 tm_isdst 0, 1 or -1; see below
9 tm_zone abbreviation of timezone name
10 tm_gmtoff offset east of UTC in seconds
   

 

 3.3、 time.ctime()

输入时间戳,返回本地时间字符串。等价于time.asctime(time.localtime())

  time.asctime([tuple])

输入数组,返回字符串 。将表示由gmtime()或localtime()返回的时间的元组或struct_time转换为以下形式的字符串:'Sun Jun 20 23:21:05 1993' 。如果未提供t,则使用localtime()返回的当前时间。asctime()不使用区域设置信息。

实例:

input:
print((time.ctime(time.time())))
print(time.asctime(time.localtime(time.time())))

output:
Tue Oct 29 11:15:16 2019
Tue Oct 29 11:15:16 2019

 

 

 

3.4、time.mktime(tuple)

输入数组,返回时间戳。这是localtime()的反函数。如果输入值不能表示为有效时间,则会引发OverflowError或ValueError(这取决于无效值是由Python还是基础C库)

实例:

input:
now = time.time()
print(now)
print(time.localtime(now))
print(time.mktime(time.localtime(now)))

output:
1572315243.9480662
time.struct_time(tm_year=2019, tm_mon=10, tm_mday=29, tm_hour=10, tm_min=14, tm_sec=3, tm_wday=1, tm_yday=302, tm_isdst=0)
1572315243.0


 

3.7 strftime(format[, tuple])

将表示由gmtime()或localtime()返回的时间的元组或struct_time转换为由格式指定的字符串参数。如果未提供t,则使用localtime()返回的当前时间。格式必须是字符串。如果t中的任何字段超出允许范围,则会引发ValueError

  strptime(string, format)

根据格式解析表示时间的字符串。返回值是由gmtime()或localtime()返回的struct_time。如果string不能根据格式解析,或者如果解析后有过多的数据,则会引发ValueError

实例:

input:
now = time.time()
now_str = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(now))
now_tup = time.strptime(now_str,'%Y-%m-%d %H:%M:%S')
print("now_str:%s \t now_tup:%s" %(now_str,now_tup))

output:
now_str:2019-10-29 10:35:25      now_tup:time.struct_time(tm_year=2019, tm_mon=10, tm_mday=29, tm_hour=10, tm_min=35, tm_sec=25, tm_wday=1, tm_yday=302, tm_isdst=-1)

 

 

 

 

以下指令可以嵌入格式字符串中。它们没有可选的字段宽度和精度规范,并由strftime()结果中指示的字符替换:

指示含义
%a Locale的缩写工作日名称。
%A Locale的整个工作日名称。
%b 语言环境的缩写月份名称。
%B Locale的完整月份名称。
%c 语言环境的适当日期和时间表示。
%d 一个十进制数字[01,31]。
%H 小时(24小时制),十进制数[00,23]。
%I 小时(12小时制)十进制数[01,12]。
%j 一年中的十进制数[001,366]。
%m 月为十进制数[01,12]。
%M 以十进制数分钟[00,59]。
%p Locale相当于AM或PM。
%S 秒为十进制数[00,61]。
%U 年的星期数(星期日为星期的第一天)为十进制数[00,53]。在第一个星期日之前的新的一年的所有天被认为是在第0周。
%w 工作日为十进制数[0(星期日),6]。
%W 年的星期数(星期一作为星期的第一天)作为十进制数[00,53]。在第一个星期一之前的新的一年中的所有天被认为是在第0周。
%x 语言环境的适当日期表示。
%X 语言环境的适当时间表示。
%y 年,无世纪作为十进制数[00,99]。
%Y 年份以世纪为十进制数。
%z 指示与+ HHMM或-HHMM形式的UTC / GMT的正或负时差的时区偏移,其中H表示十进制小时数字,M表示十进制分数字[-23:59,+23:59]。
%Z 时区名称(如果没有时区,则不包含字符)。
%% 字面值'%'字符。

 

 

 

 

posted on 2019-10-29 11:20  别动我的锅  阅读(115)  评论(0)    收藏  举报

导航

levels of contents