python中时间如何表示

Python015

python中时间如何表示,第1张

Python中有3种不同的时间表示法

1.时间戳 timestamp  是从1970年1月1日0时0分0秒开始的秒数

2.struct_time    包含9个元素的tuple

3.format time 已经格式化好便于阅读的时间

使用时间需要使用time模块

import time引入time模块

time.time()方法获取当前的时间,以timestamp的形式

>>>time.time()

1576372527.424447

time.localtime()方法:以struct_time的形式获取当前的当地时间

>>>time.localtime()

time.struct_time(tm_year=2019, tm_mon=12, tm_mday=14,

tm_hour=20, tm_min=15, tm_sec=49, tm_wday=5, tm_yday=348, tm_isdst=0)

time.gmtime()方法:以struct_time的形式获取当前的格林尼治时间

从struct_time中获取具体的年月日:

ctime.tm_year  ctime.tm_mon .....

ttm_tm_isdst = 1来告知mktime()现在处于夏令时,明确使用ttm.tm_isdst = 0来告知未处于夏令时

不同时间表示法的转换

struct_time转timestamp: time.mktime(<struct_time>)

timestamp转struct_time: time.localtime(time.time())

  时间戳可简单理解为自1970/01/01/ 00:00:00 到现在经过的秒数,如果要计算日期运算,因为涉及到润年,一般使用语言自带的库实现比较简单和高效。但如果只是取时间即时分秒,完全可以不用依赖库,通过模运算和取整运算的方式实现,并且性能比内部库函数效率更高。

运行结果,100万次

1000万次

性能快了接近200%,如果有涉及到大数据分析场景,百万甚至千万级别次的调用时,该算法还是有意义的

不可能得到足够细致的控制,你可以完全消除这种可能性 重复时间戳 - 您需要的分辨率小于生成日期时间对象所需的时间。您可能需要采取其他一些方法来处理它:

处理它。让您的时间戳不是唯一的,但依赖于python的排序稳定处理重新排序的问题。首先在时间戳上排序,然后其他内容将保留时间戳排序 - 您必须小心始终始终从时间戳排序列表开始,而不是在同一列表上进行多种排序。

追加自己的价值来强制实现唯一性。例如。包括一个递增的整数值作为键的一部分,或者仅在时间戳不同时附加这样的值。