根据http://dev.mysql.com/doc/refman/5.0/en/datetime.html。我找到了一种将字符串值’YYYY- MM-DD HH:MM:SS’转换为时间戳int的方法。
我在python的文档中查找。
我试过了:
print(time.strptime('2013-01-12 15:27:43', '%Y-%m-%d %H:%M:%S'))
python给我这样的结果。
time.struct_time(tm_year = 2013,tm_mon = 1,tm_mday = 12,tm_hour = 15,tm_min = 27,tm_sec = 43,tm_wday = 5,tm_yday = 12,tm_isdst = -1)
我试图将时间戳转换为YYYY-MM-DD HH:MM:SS格式
print(time.strftime('%Y-%m-%d %H:%M:%S',time.time()))
python给我一个类型错误。
我只使用时间戳来计算时间和日期,我希望python中已经有一种方法,既简单又高效,并且不必创建临时数据。
根据答案,我写了两种方法。希望对您有所帮助
import time def convertTimestampToSQLDateTime(value): return time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(value)) def convertSQLDateTimeToTimestamp(value): return time.mktime(time.strptime(value, '%Y-%m-%d %H:%M:%S'))
如果我没有正确理解,很高兴进行更新,但是这里有一些示例可能会有所帮助。请注意,这使用的是datetime模块而不是time。
datetime
time
>>> import datetime
在这里,我们设置示例时间戳ts和格式f:
ts
f
>>> ts = '2013-01-12 15:27:43' >>> f = '%Y-%m-%d %H:%M:%S'
与您上面的操作类似,我们使用strptime函数(from datetime.datetime)datetime根据格式参数将字符串转换为对象:
strptime
datetime.datetime
>>> datetime.datetime.strptime(ts, f) datetime.datetime(2013, 1, 12, 15, 27, 43)
现在反过来-在这里我们使用datetime.datetime.now()获取当前时间作为datetime对象:
datetime.datetime.now()
>>> now = datetime.datetime.now() >>> now datetime.datetime(2013, 1, 12, 0, 46, 54, 490219)
在这种datetime情况下,该strftime方法实际上是在datetime对象本身上调用的,格式参数为参数:
strftime
>>> now.strftime(f) '2013-01-12 00:46:54'
在您的情况下,出现错误的原因是因为time.time()返回浮点数:
time.time()
>>> time.time() 1357980846.290231
但是time.strftime需要一个time元组,类似于上面的内容。无需陷入时间的疯狂漩涡,诸如之类的函数time.localtime()将返回上述time元组,并按预期返回:
time.strftime
time.localtime()
>>> now = time.localtime() >>> now time.struct_time(tm_year=2013, tm_mon=1, tm_mday=12, tm_hour=0, tm_min=55, tm_sec=55, tm_wday=5, tm_yday=12, tm_isdst=0) >>> f = '%Y-%m-%d %H:%M:%S' >>> time.strftime(f, now) '2013-01-12 00:55:55'