目录

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&quot …

随机推荐

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 #删除网络 …