python - 为什么用time.strftime格式化会用默认值?
PHP中文网
PHP中文网 2017-05-18 10:50:41
[Python讨论组]

a = time.time()

time.sleep(3)

b = time.time()

time_consuming = time.strftime("%H:%M:%S", time.localtime(b - a))
print(time_consuming)

用以上代码去跑time.strftime格式化时间后小时处总有个默认值,这个8小时的默认值怎么来的

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
迷茫

因为时区的问题,不应该用 time,应该用 datetime.timedelta 来计算
参考下面代码

import time
import datetime

a = time.time()

time.sleep(3)

b = time.time()
print datetime.timedelta(seconds=(b -a ))  # <-- 推荐
time_consuming = time.strftime("%H:%M:%S", time.gmtime(b - a))  # <-- 不推荐
print(time_consuming)

输出如下:

0:00:03.004802
00:00:03
阿神

8 小时是时区转换导致的:北京是东八区,时间要往前加 8 小时。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号