Python的UTC时间转换讲解


Posted in Python onFebruary 26, 2019

UTC时间转换,最终得到的都是UTC时间。

简单来说就是:

时间戳(timestamp) 转换-> UTC显示时间(datetime),使用time.gmtime(timestamp)。

显示时间(datetime) 转换-> UTC时间戳(timestamp),使用calendar.timegm(datetime.timetuple())。

注意:

VC下相应的接口是gmtime和_mkgmtime。

代码:

# -*- coding: gb2312 -*-
# UTC时间转换,最终得到的都是UTC时间:
# 时间戳(timestamp)  转换-> UTC显示时间(datetime)
# 显示时间(datetime) 转换-> UTC时间戳(timestamp)
# UTC,协调世界时,又称世界统一时间,可以认为是时区为0的时间。
import time
import datetime
import calendar
aDatetime = datetime.datetime(1970, 1, 1, 0, 0, 1)
aTimestamp = 1
# 获取时区时差
print "time.timezone: " , time.timezone
# 根据自定义时间,获取显示时间(datetime)。
print "datetime: ", aDatetime
print "timetuple: ", aDatetime.timetuple()
print "time.strptime: ", time.strptime("1970-1-1 0:1:1", "%Y-%m-%d %H:%M:%S")
# 根据时间戳(timestamp),获取UTC显示时间(datetime)。即:时间戳(timestamp) 转换-> 显示时间(datetime)。
print "time.gmtime: timestamp(%s)->datetime(%s)" % (aTimestamp, time.gmtime(aTimestamp))
print "datetime.datetime.utcfromtimestamp: timestamp(%s)->datetime(%s)" % (aTimestamp, datetime.datetime.utcfromtimestamp(aTimestamp))
# 根据显示时间(datetime),获取UTC时间戳(timestamp)。即:显示时间(datetime) 转换-> 时间戳(timestamp)。
print "calendar.timegm: datetime(%s)->timestamp(%s)" % (aDatetime.timetuple(), calendar.timegm(aDatetime.timetuple()))
dt = time.gmtime(aTimestamp - time.timezone) # time.mktime转换时间是带时区的,所以需要减掉时区时差
print "time.mktime: datetime(%s)->timestamp(%s)" % (dt, time.mktime(dt))

输出:

time.timezone:  -28800
datetime:  1970-01-01 00:00:01
timetuple:  time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=-1)
time.strptime:  time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=-1)
time.gmtime: timestamp(1)->datetime(time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0))
datetime.datetime.utcfromtimestamp: timestamp(1)->datetime(1970-01-01 00:00:01)
calendar.timegm: datetime(time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=-1))->timestamp(1)
time.mktime: datetime(time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=0))->timestamp(1.0)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
从零学Python之hello world
May 21 Python
python实现中文分词FMM算法实例
Jul 10 Python
Python中getpass模块无回显输入源码解析
Jan 11 Python
对Python2与Python3中__bool__方法的差异详解
Nov 01 Python
BP神经网络原理及Python实现代码
Dec 18 Python
通过pycharm使用git的步骤(图文详解)
Jun 13 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
opencv实现简单人脸识别
Feb 19 Python
python实现异常信息堆栈输出到日志文件
Dec 26 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
Jul 09 Python
python 调整图片亮度的示例
Dec 03 Python
python_tkinter弹出对话框创建
Mar 20 Python
Python逐行读取文件中内容的简单方法
Feb 26 #Python
Python计算时间间隔(精确到微妙)的代码实例
Feb 26 #Python
python3编写ThinkPHP命令执行Getshell的方法
Feb 26 #Python
初探利用Python进行图文识别(OCR)
Feb 26 #Python
Python编写合并字典并实现敏感目录的小脚本
Feb 26 #Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
Feb 26 #Python
利用python实现对web服务器的目录探测的方法
Feb 26 #Python
You might like
使用PHP获取网络文件的实现代码
2010/01/01 PHP
php foreach 使用&(与运算符)引用赋值要注意的问题
2010/02/16 PHP
javascript 模拟JQuery的Ready方法实现并出现的问题
2009/12/06 Javascript
juqery 学习之四 筛选过滤
2010/11/30 Javascript
js获取控件位置以及不同浏览器中的差别介绍
2013/08/08 Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
2016/03/24 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
jQuery实现选项卡功能(两种方法)
2017/03/08 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
基于vue.js无缝滚动效果
2018/01/25 Javascript
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
vue项目中实现缓存的最佳方案详解
2019/07/11 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
Python数组条件过滤filter函数使用示例
2014/07/22 Python
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
python实现爬取图书封面
2018/07/05 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
2018/11/21 Python
python写日志文件操作类与应用示例
2019/07/01 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
Servlet的生命周期
2013/08/25 面试题
建筑公司员工自我鉴定
2014/04/08 职场文书
环保倡议书50字
2014/05/15 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
教师党员个人整改措施
2014/10/27 职场文书
2014年幼儿园老师工作总结
2014/12/05 职场文书
MySQL七种JOIN类型小结
2021/10/24 MySQL
vue实现登陆页面开发实践
2022/05/30 Vue.js