python求时间差
2012-11-12 21:07
260 查看
转自:http://blog.sina.com.cn/s/blog_519ccabf01010ykx.html
1.python求时间差不能使用time()模块,eg:
t1 = time.ctime()
time.sleep(3)
t2 = time.ctime()
t = t2 - t1 ###会报错,不能相减
2.需要使用datetime模块,datetime模块比time模块更能更强。
d1 = datetime.datetime.now()
time.sleep(3)
d2 = datetime.datetime.now()
d = d2-d1 ###
产生的是 datetime.timedelta 对象
d.days 天
d.max 最大
d.microseconds 微秒
d.min 最小
d.resolution
d.seconds 秒
注: d1, d2 还可以格式化成正常的日期时间。
e.g:
t_now = str(d1) ###
t_now = '2012-02-17 12:49:04.828000' 精确到毫秒
t_now[:19] ##
秒级别 '2012-02-17 12:49:04'
t_now[:10] ##
日期级别 '2012-02-17'
可根据需要自己裁定
测试模块:
测试报告:
logs = Log.objects.order_by('-start_time')
d1 = datetime.datetime.now()
#logs = logs.order_by('start_time')
log_list = list(logs)
log_list.sort(key=operator.attrgetter('start_time'), reverse=False)
d2 = datetime.datetime.now()
d = d2 - d1
print d
0:00:00.811000
[12/Nov/2012 18:06:24] "GET /log/index/?_=1352714783865 HTTP/1.1" 200 10564
0:00:00.780000
[12/Nov/2012 18:06:43] "GET /log/index/?_=1352714802185 HTTP/1.1" 200 10564
0:00:00.764000
[12/Nov/2012 18:07:06] "GET /log/index/?_=1352714825224 HTTP/1.1" 200 10564
0:00:00.749000
[12/Nov/2012 18:07:07] "GET /log/index/?_=1352714827160 HTTP/1.1" 200 10564
0:00:00.780000
[12/Nov/2012 18:07:09] "GET /log/index/?_=1352714828683 HTTP/1.1" 200 10564
logs = Log.objects.order_by('-start_time')
d1 = datetime.datetime.now()
#logs = logs.order_by('start_time')
log_list = list(logs)
log_list.sort(key=operator.attrgetter('start_time'), reverse=True)
d2 = datetime.datetime.now()
d = d2 - d1
print d
0:00:00.780000
[12/Nov/2012 18:09:12] "GET /log/index/?_=1352714951344 HTTP/1.1" 200 10564
0:00:00.780000
[12/Nov/2012 18:09:48] "GET /log/index/?_=1352714987642 HTTP/1.1" 200 10564
0:00:00.764000
[12/Nov/2012 18:09:50] "GET /log/index/?_=1352714989233 HTTP/1.1" 200 10564
0:00:00.780000
[12/Nov/2012 18:09:51] "GET /log/index/?_=1352714990809 HTTP/1.1" 200 10564
0:00:00.795000
[12/Nov/2012 18:09:53] "GET /log/index/?_=1352714992482 HTTP/1.1" 200 10564
0:00:00.796000
[12/Nov/2012 18:09:55] "GET /log/index/?_=1352714994265 HTTP/1.1" 200 10564
logs = Log.objects.order_by('-start_time')
d1 = datetime.datetime.now()
logs = logs.order_by('start_time')
#log_list = list(logs)[0:10]
#log_list.sort(key=operator.attrgetter('start_time'), reverse=False)
d2 = datetime.datetime.now()
d = d2 - d1
print d
0:00:00
[12/Nov/2012 18:18:14] "GET /log/index/?_=1352715494293 HTTP/1.1" 200 10667
0:00:00
[12/Nov/2012 18:18:15] "GET /log/index/?_=1352715494940 HTTP/1.1" 200 10667
0:00:00
[12/Nov/2012 18:18:15] "GET /log/index/?_=1352715495661 HTTP/1.1" 200 10667
0:00:00
[12/Nov/2012 18:18:16] "GET /log/index/?_=1352715496335 HTTP/1.1" 200 10667
0:00:00
[12/Nov/2012 18:18:17] "GET /log/index/?_=1352715497517 HTTP/1.1" 200 10667
1.python求时间差不能使用time()模块,eg:
t1 = time.ctime()
time.sleep(3)
t2 = time.ctime()
t = t2 - t1 ###会报错,不能相减
2.需要使用datetime模块,datetime模块比time模块更能更强。
d1 = datetime.datetime.now()
time.sleep(3)
d2 = datetime.datetime.now()
d = d2-d1 ###
产生的是 datetime.timedelta 对象
d.days 天
d.max 最大
d.microseconds 微秒
d.min 最小
d.resolution
d.seconds 秒
注: d1, d2 还可以格式化成正常的日期时间。
e.g:
t_now = str(d1) ###
t_now = '2012-02-17 12:49:04.828000' 精确到毫秒
t_now[:19] ##
秒级别 '2012-02-17 12:49:04'
t_now[:10] ##
日期级别 '2012-02-17'
可根据需要自己裁定
测试模块:
测试报告:
logs = Log.objects.order_by('-start_time')
d1 = datetime.datetime.now()
#logs = logs.order_by('start_time')
log_list = list(logs)
log_list.sort(key=operator.attrgetter('start_time'), reverse=False)
d2 = datetime.datetime.now()
d = d2 - d1
print d
0:00:00.811000
[12/Nov/2012 18:06:24] "GET /log/index/?_=1352714783865 HTTP/1.1" 200 10564
0:00:00.780000
[12/Nov/2012 18:06:43] "GET /log/index/?_=1352714802185 HTTP/1.1" 200 10564
0:00:00.764000
[12/Nov/2012 18:07:06] "GET /log/index/?_=1352714825224 HTTP/1.1" 200 10564
0:00:00.749000
[12/Nov/2012 18:07:07] "GET /log/index/?_=1352714827160 HTTP/1.1" 200 10564
0:00:00.780000
[12/Nov/2012 18:07:09] "GET /log/index/?_=1352714828683 HTTP/1.1" 200 10564
logs = Log.objects.order_by('-start_time')
d1 = datetime.datetime.now()
#logs = logs.order_by('start_time')
log_list = list(logs)
log_list.sort(key=operator.attrgetter('start_time'), reverse=True)
d2 = datetime.datetime.now()
d = d2 - d1
print d
0:00:00.780000
[12/Nov/2012 18:09:12] "GET /log/index/?_=1352714951344 HTTP/1.1" 200 10564
0:00:00.780000
[12/Nov/2012 18:09:48] "GET /log/index/?_=1352714987642 HTTP/1.1" 200 10564
0:00:00.764000
[12/Nov/2012 18:09:50] "GET /log/index/?_=1352714989233 HTTP/1.1" 200 10564
0:00:00.780000
[12/Nov/2012 18:09:51] "GET /log/index/?_=1352714990809 HTTP/1.1" 200 10564
0:00:00.795000
[12/Nov/2012 18:09:53] "GET /log/index/?_=1352714992482 HTTP/1.1" 200 10564
0:00:00.796000
[12/Nov/2012 18:09:55] "GET /log/index/?_=1352714994265 HTTP/1.1" 200 10564
logs = Log.objects.order_by('-start_time')
d1 = datetime.datetime.now()
logs = logs.order_by('start_time')
#log_list = list(logs)[0:10]
#log_list.sort(key=operator.attrgetter('start_time'), reverse=False)
d2 = datetime.datetime.now()
d = d2 - d1
print d
0:00:00
[12/Nov/2012 18:18:14] "GET /log/index/?_=1352715494293 HTTP/1.1" 200 10667
0:00:00
[12/Nov/2012 18:18:15] "GET /log/index/?_=1352715494940 HTTP/1.1" 200 10667
0:00:00
[12/Nov/2012 18:18:15] "GET /log/index/?_=1352715495661 HTTP/1.1" 200 10667
0:00:00
[12/Nov/2012 18:18:16] "GET /log/index/?_=1352715496335 HTTP/1.1" 200 10667
0:00:00
[12/Nov/2012 18:18:17] "GET /log/index/?_=1352715497517 HTTP/1.1" 200 10667
相关文章推荐
- Python时间差中seconds和total_seconds的区别
- python 计算两个带日期的时间差
- python中时间差中seconds和total_seconds
- python求两个时间的时间差
- python 计算两个带日期的时间差
- 关于python 的时间差计算
- Python时间操作--获取微秒级别的时间差
- python datetime.timedelta(时间差)
- 如何在python中比较微秒时间差(microsecond)
- python 时间差计算
- python datetime时间差
- python 时间差计算
- python 求两个时间差
- Python matplotlib生成图片背景透明
- Python ''.JOIN()的作用
- On the third day learning Python(第三天学习Python)
- Python错误、调试及测试相关备忘
- Python3.52安装扩展错误
- python之redis
- python 多excel导入到mysql中去