python-timestamp和datetime之间的转换_Python-datetime与timestamp之间的转换
python timestamp和datetime之间的转换_Python datetime与timestamp之间的转换
!!!! Python 2 datetime.datetime 对象没有timestamp方法!
在用Python处理datetime和timestamp的转换时发现在时区方面,Python的处理是个大坑。
因为Python的time是默认localtime输入来处理的,导致脚本在本地运行和在服务器运行会得到不一样的结果。一不注意就会中招。
R中也会碰到时区的问题,但是R的方法提供了tz选项来指定日期的时区,简化了问题。而Python 中的time.mktime无法对时区进行指定,带来了很多麻烦。查了很久,发现有一个time.timezone的属性,可以根据运行脚本的机器的时间,来灵活处理时区问题。
以下是datetime与timestamp转换的方法, 输入和输出都以GMT0为准.
from datetime import datetime
import time
def timestamp_datetime(ts):
if isinstance(ts, (int, float, str)):
try:
ts = int(ts)
except ValueError:
raise
if len(str(ts)) == 13:
ts = int(ts / 1000)
if len(str(ts)) != 10:
raise ValueError
else:
raise ValueError()
return datetime.fromtimestamp(ts)
def datetime_timestamp(dt, type=‘ms’):
if isinstance(dt, str):
try:
if len(dt) == 10:
dt = datetime.strptime(dt.replace(’/’, ‘-’), ‘%Y-%m-%d’)
elif len(dt) == 19:
dt = datetime.strptime(dt.replace(’/’, ‘-’), ‘%Y-%m-%d %H:%M:%S’)
else:
raise ValueError()
except ValueError as e:
raise ValueError(
“{0} is not supported datetime format.” \
“dt Format example: ‘yyyy-mm-dd’ or yyyy-mm-dd HH:MM:SS”.format(dt)
)
if isinstance(dt, time.struct_time):
dt = datetime.strptime(time.stftime(’%Y-%m-%d %H:%M:%S’, dt), ‘%Y-%m-%d %H:%M:%S’)
if isinstance(dt, datetime):
if type == ‘ms’:
ts = int(dt.timestamp()) * 1000
else:
ts = int(dt.timestamp())
else:
raise ValueError(
“dt type not supported. dt Format example: ‘yyyy-mm-dd’ or yyyy-mm-dd HH:MM:SS”
)
return ts
if name == ‘main’:
try:
print(datetime_timestamp(‘2015-01-01 20:20:00’, ’s’))
print(timestamp_datetime(1420114800))
print(timestamp_datetime(1420114800123))
except Exception as e:
print(e.args[0])
python—时间与时间戳之间的转换
python-时间与时间戳之间的转换 对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块 …
Python数字与字符之间的转换
Python数字与字符之间的转换 命令 意义 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 co …
c# datetime与 timeStamp时间戳 互相转换
将时间格式转化为一个int类型 // ::26时间转完后为:1389675686数字 为什么使用时间戳? 关于Unix时间戳,大概是这个意思,从1970年0时0分0秒开始到现在的秒数.使用它来获得的是 …
常见的时间字符串与timestamp之间的转换 时间戳
这里说的字符串不是一般意义上的字符串,是指在读取日期类型的数据时,如果还没有及时解析字符串,它就还不是日期类型,那么此时的字符串该怎么与时间戳之间进行转换呢? ① 时间字符串转化成时间戳 将时间字符串 …
python中进制之间的转换
参考于:http://www.360doc.com/content/14/0428/11/16044571_372866302.shtml 在此非常感谢! ~~~~~~~~~~~~~~~~~~~~~ …
msyql DATETIME类型和Timestamp之间的转换
DATETIME -> Timestamp: UNIX_TIMESTAMP(…) Timestamp -> DATETIME: FROM_UNIXTIME(…) select da …
python 时间与时间戳之间的转换
对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运 …
String和Date、Timestamp之间的转换
一.String与Date(java.util.Date)互转 1.1 String -> Date String dateStr = “2010/05/04 12:34:23&quo …
Java:String和Date、Timestamp之间的转换
一.String与Date(java.util.Date)互转 1.1 String -> Date String dateStr = “2016-9-28 12:25:55" …
随机推荐
Oracle insert大量数据经验之谈(转)
在很多时候,我们会需要对一个表进行插入大量的数据,并且希望在尽可能短的时间内完成该工作,这里,和大家分享下我平时在做大量数据insert的一些经验. 前提:在做insert数据之前,如果是非生产环境, …
前端js的书写规范和高效维护的方案_自我总结使用的方案
作为程序员,人生最值得幸福的事有几件: 解决困扰了很长时间的问题 升职加薪 找个漂亮又靠谱的对象 深得领导的喜欢 带领团队冲锋陷阵 … 哈哈,这些都是梦想,暂时想想就好了.这肯定和我说的东西不符合 …
paip.mysql备份慢的解决
paip.mysql备份慢的解决.txt 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csdn.net/att …
chmod chgrp chown
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁 …
smarty 中时间格式化的用法
大家都知道PHP中输出时间和日期可以用 date(“Y-m-d H:i:s”,时间戳) , 但是在smarty模板中,$time|date_format:’%Y-%m-%d %H …
Sicily 4495. Print permutations
按字典序生成字符串的全排列 直接递归: #include #include #include &l …
poj3984迷宫问题
一个5 × 5的二维数组,表示一个迷宫.其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线. 很简单的一道题,迷宫问题,一般都选择两种优先搜索 …
Qt下载地址
上Qt官网http://www.qt.io/download/想下载Qt,速度很慢,在这里记录下在Qt官网看到的镜像下载地址: 1. 所有Qt版本下载地址: …
neutron—–openstack网络操作
#查看子网 openstack subnet list #删除子网 openstack subnet delete name/id #查看网络 openstack network list #删除网络 …