admin 管理员组文章数量: 887053
2024年1月14日发(作者:斯特林公式证明)
python时间模块小结-电脑资料
一:经常使用的时间方法
1.得到当前时间
使用time模块,首先得到当前的时间戳
In [42]: ()
Out[42]: 1408066927.208922
将时间戳转换为时间元组 struct_time
In [43]: ime(())
Out[43]: _time(tm_year=2014, tm_mon=8,
tm_mday=15, tm_hour=9, tm_min=42, tm_sec=20, tm_wday=4,
tm_yday=227, tm_isdst=0)
格式化输出想要的时间
In
)))
Out[44]: '2014-08-15 09:43:04'
接上文,不加参数时,默认就是输出当前的时间
In [48]: me('%Y-%m-%d %H:%M:%S')
Out[48]: '2014-08-15 09:46:53’
当然也可以透过datetime模块来实现,如下:
In [68]: t = ()
In
%M:%S')
Out[69]: '2014-08-15 10:04:51’
同时,也可以只使用datetime模块
In
Out[46]: '2014-08-15 09:45:27’
[46]:
().strftime('%Y-%m-%d %H:%M:%S')
[69]:
mestamp(t).strftime('%Y-%m-%d %H:[44]:
me('%Y-%m-%d %H:%M:%S',ime((
In
Out[47]: '2014-08-15 09:46:10'
2.获取时间差,计算程序的执行时间等:
使用time模块:
In [75]: def t():
....: start = ()
....: (10)
....: end = ()
....: print end - start
....:
In [76]: t()
10.
使用datetime模块:
In [49]: starttime = ()
In [50]: endtime = ()
In [51]: print (endtime - starttime).seconds
6
[47]:
().strftime('%Y-%m-%d %H:%M:%S')
3.计算昨天的日期(发散思维,计算其他日期相加、相减等):
In [52]: d1 = ()
In [53]: d2 = d1 - lta(days=1)
In [54]: d1
Out[54]: me(2014, 8, 15, 9, 54, 10, 68665)
In [55]: d2
Out[55]: me(2014, 8, 14, 9, 54, 10, 68665)
4.时间元组 struct_time转化为时间戳
In [56]: ()
Out[56]: me(2014, 8, 15, 9, 57, 52, 779893)
In [57]: ().timetuple()
Out[57]: _time(tm_year=2014, tm_mon=8,
tm_mday=15, tm_hour=9, tm_min=58, tm_sec=12, tm_wday=4,
tm_yday=227, tm_isdst=-1)
In [58]: (().timetuple())
Out[58]: 1408067904.0
me也挺有用的,将时间字符串转换为时间元组struct_time
In [73]: me('%Y-%m-%d %H:%M:%S')
Out[73]: '2014-08-15 10:27:36'
In
Out[74]:
[74]: me('2014-08-15
tm_mon=8,
10:27:36','%Y-%m-%d %H:%M:%S')
_time(tm_year=2014,
tm_mday=15, tm_hour=10, tm_min=27, tm_sec=36, tm_wday=4,
tm_yday=227, tm_isdst=-1)
##二:time和datetime模块常用方法简介
表示时间的两种方式:
1. 时间戳(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的
2. 时间元组 即(struct_time),共有九个元素,分别表示,同一个时间戳的struct_time会因为时区不同而不同
time 模块常用方法小记
()
这个需要注意,在不同的系统上含义不同,。在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间 戳)。而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。(实际上是以WIN32 上QueryPerformanceCounter()为基础,它比毫秒表示更为精确)
budong@budongdeMacBook-Pro:/tmp$ cat
#!/usr/bin/env python
import time
if __name__ == '__main__':
(1)
print "clock1:%s" % ()
(1)
print "clock2:%s" % ()
(1)
print "clock3:%s" % ()
运行脚本:
budong@budongdeMacBook-Pro:/tmp$ ./
clock1:0.059173
clock2:0.059299
clock3:0.059416
(secs)
线程推迟指定的时间运行
适合放在脚本里,定时sleep一会然后继续干啥
In [138]: while True:
.....: (3)
.....: print me('%H:%M:%S')
.....:
17:21:35
17:21:38
17:21:41
17:21:44
……
ime([secs])
将一个时间戳转换成一个当前时区的struct_time,如果seconds参数未输入,则以当前时间为转换标准
未提供secs参数时,按当前时间为准
In [141]: ime()
Out[141]: _time(tm_year=2014, tm_mon=8,
tm_mday=14, tm_hour=17, tm_min=23, tm_sec=48, tm_wday=3,
tm_yday=226, tm_isdst=0)
提供secs为当前时间戳时
In [142]: ()
Out[142]: 1408008232.217969
In [143]: ime(())
Out[143]: _time(tm_year=2014, tm_mon=8,
tm_mday=14, tm_hour=17, tm_min=24, tm_sec=2, tm_wday=3,
tm_yday=226, tm_isdst=0)
me(format[, t])
将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
t未指定,传入ime()作为默认参数:
In [156]: me('%Y-%m-%d %H:%M:%S')
Out[156]: '2014-08-14 17:28:16’
指定t为ime(1407945600.0)时:
In [157]: ime(1407945600.0)
Out[157]: _time(tm_year=2014, tm_mon=8,
tm_mday=14, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3,
tm_yday=226, tm_isdst=0)
In
00.0))
Out[158]: '2014-08-14 00:00:00’
()
返回当前时间的时间戳
In [161]: ()
Out[161]: 1408008711.730218
(t)
将一个struct_time转换为时间戳,如下ime接收一个[158]:
me('%Y-%m-%d %H:%M:%S',ime(14079456
时间戳返回一个struct_time,而接收一个struct_time,返回一个时间戳
In [159]: ime(1407945600.0)
Out[159]: _time(tm_year=2014, tm_mon=8,
tm_mday=14, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3,
tm_yday=226, tm_isdst=0)
In [160]: (ime(1407945600.0))
Out[160]: 1407945600.0
残阳似血的博客:
官方time模块:
##datetime 模块常用方法小记
datetime模块常用的主要有下面这四个类:
1. : 是指年月日构成的日期(相当于日历)
2. : 是指时分秒微秒构成的一天24小时中的具体时间(相当于手表)
3. me: 上面两个合在一起,既包含时间又包含日期
4. lta: 时间间隔对象(timedelta),
电脑资料
《python 时间模块小结》(www.)。一个时间点(datetime)加上一个时间间隔(timedelta)可以得到一个新的时间点(datetime)。比如今天的上午3点加上5个小时得到今天的上午8点。同理,两个时间点相减会得到一个时间间隔。
类
1.新建一个date对象,日期为今天,既可以直接调用(),也可以直接向()传值,如下:
In [4]: today = ()
In [5]: today
Out[5]: (2014, 8, 15)
In [6]: t = (2014,8,15)
In [7]: t
Out[7]: (2014, 8, 15)
me(format) 格式化为需要的时间,如常用的 “年-月-日 小时:分钟:秒” 格式
In [8]: me('%Y-%m-%d %H:%M:%S')
Out[8]: '2014-08-15 00:00:00’
date对象中小时、分钟、秒默认都是0,纪元年的那个时间
() 转成struct_time格式,这样传递给(t) 后,直接转成时间戳格式
In [9]: ple()
Out[9]: _time(tm_year=2014, tm_mon=8,
tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4,
tm_yday=227, tm_isdst=-1)
In [10]: (ple())
Out[10]: 1408032000.0
e(year, month, day) 返回一个替换后的date对象
In [11]: e(year=2013)
Out[11]: (2013, 8, 15)
mestamp(timestamp) 将时间戳转化为date对象
In [12]: mestamp(1408058729)
Out[12]: (2014, 8, 15)
类
1.新建一个time对象
In [15]: t
Out[15]: (8, 45, 20)
.(format)格式化输出
In [16]: me('%Y-%m-%d %H:%M:%S')
Out[16]: '1900-01-01 08:45:20’
time对应的年、月、日为1900、01、01,纪元年的那个时间
e([hour[,
In [17]: e(hour=9)
Out[17]: (9, 45, 20)
me类
其实和date的那些方法差不多了,大概看以下,简单说说
1.新建一个datetime对象,日期为今天,既可以直接调用(),也可以直接向me()传值,如下:
In [21]: d1 = ()
In [22]: d1
Out[22]: me(2014, 8, 15, 8, 12, 34, 790945)
In [23]: d2 = me(2014, 8, 15, 8, 12, 34, 790945)
In [24]: d2
Out[24]: me(2014, 8, 15, 8, 12, 34, 790945)
([tz]) 当不指定时区时,和()是一样的结果,如下
In [25]: ()
Out[25]: me(2014, 8, 15, 8, 14, 50, 738672)
3..me(format) 格式化为需要的时间,如常用的 “年-月-日 小时:分钟:秒” 格式
In [27]: d1
Out[27]: me(2014, 8, 15, 8, 12, 34, 790945)
In [28]: me('%Y-%m-%d %H:%M:%S')
Out[28]: '2014-08-15 08:12:34’
() 转成struct_time格式,这样传递给(t) 后,直接转成时间戳格式
In [29]: d1
Out[29]: me(2014, 8, 15, 8, 12, 34, 790945)
minute[, second[,
microsecond[, tzinfo]]]]]) 返回一个替换后的time对象
In [30]: ple()
Out[30]: _time(tm_year=2014, tm_mon=8,
tm_mday=15, tm_hour=8, tm_min=12, tm_sec=34, tm_wday=4,
tm_yday=227, tm_isdst=-1)
In [31]: (ple())
Out[31]: 1408061554.0
e(year, month, day) 返回一个替换后的date对象
In [32]: d1
Out[32]: me(2014, 8, 15, 8, 12, 34, 790945)
In [33]: e(year=2000)
Out[33]: me(2000, 8, 15, 8, 12, 34, 790945)
mestamp(timestamp) 将时间戳转化为datetime对象
In [34]: ()
Out[34]: 1408061894.081552
In [35]: mestamp(1408061894)
Out[35]: me(2014, 8, 15, 8, 18, 14)
lta类
没啥好说的,主要做时间的加减法用,如下:
In [78]: today = ()
In [79]: yesterday = today - lta(days=1)
In [80]: yesterday
Out[80]: me(2014, 8, 14, 15, 8, 25, 783471)
In [81]: today
Out[81]: me(2014, 8, 15, 15, 8, 25, 783471)
版权声明:本文标题:python时间模块小结-电脑资料 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705234655h478032.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论