UTC & Local
time 是python的一个模块,其中又有一个同名函数time,返回当前到所谓epoch,即1970.1.1的秒数,不过与Unix不太一样的是,这厮返回的是一个精确度更高的浮点数
说time操作之前,必须说UTC
- UTC:Universal Time Coordinated,传说中的世界调整时间,全世界的时间都统一到UTC来。前身就是GMT(Greenwich Mean Time,小时候地理教的格林威治时间便是啦)
time.gmtime([secs]):gm就是greenwich
mean的意思,所以函数把指定秒数转换成UTC
time.localtime([secs]):本地时间,顾名思义就是时区相关的,而非UTC
以上两者都是返回time.struct_time对象的
import time
# 先来看时区信息
>>>time.tzname
('CST', 'CST')
CST表示 China Standard Time,tuple的第二个元素表示夏令时下的时区信息,你说什么夏令时是什么鬼啊?自己google去,反正咱天朝没用。
>>>secs = time.time()
>>>secs
1425886401.555671 # 看到好多小数位了吧
>>>time.gmtime(secs)
time.struct_time(tm_year=2015, tm_mon=3, tm_mday=9, tm_hour=7, tm_min=33, tm_sec=21, tm_wday=0, tm_yday=68, tm_isdst=0) #注意tm_hour是7
>>>time.localtime(secs)
time.struct_time(tm_year=2015, tm_mon=3, tm_mday=9, tm_hour=15, tm_min=33, tm_sec=21, tm_wday=0, tm_yday=68, tm_isdst=0) #注意tm_hour是15
好了,不是很复杂的东西
time.mktime(tuple):t是一个time.struct_time对象(或者duck-type的符合要求的9-tuple)。是localtime的反操作,也就是说,tuple是被认为是local时间而非UTC
calendar.timegm(tuple):类似mktime,不过是gmtime的反操作。
>>>local_t = time.localtime(secs) # local_t是struct_time
>>>time.mktime(local_t)
1425886401.0 # 同样是小数,不过比time()返回的精确度低了
>>>import calendar
>>>gm_t = time.gmtime(secs)
>>>calendar.timegm(gm_t)
1425886401 # 不是小数了,果然不是同个模块的态度就是不一样
Time和字符串
前面的操作还是围绕time.struct_time。有时我们还是希望直接输出字符串的
time.strftime(format[,
t]):string from time,format是字符串格式,这就牵涉到一堆格式directive了,用到的时候查文档即可。而t一个time.struct_time,可由gmtime()或localtime()返回
time.strptime(string[,format]):strftime的反操作,将string以format格式转成一个struct_time并返回
每次python一下,记录一下
本文介绍了Python中处理时间的多种方法,包括使用UTC和本地时间、时间戳的转换、时间与字符串之间的相互转换等核心功能。通过实例展示了如何利用Python内置的time模块进行日期和时间的计算。

被折叠的 条评论
为什么被折叠?



