将python时间戳转换为python中的纪元时间
时间:2020-03-06 14:32:56 来源:igfitidea点击:
在python中将mysql时间戳转换为纪元时间是否有简单的方法呢?
解决方案
为什么不让MySQL努力工作呢?
从表名中选择unix_timestamp(fieldname);
如果我们由于某种原因不想让MySQL进行这项工作,那么我们可以在Python中足够容易地完成此工作。从MySQLdb返回datetime列时,将获得一个Python datetime.datetime对象。要转换其中之一,可以使用time.mktime。例如:
import time # Connecting to database skipped (also closing connection later) c.execute("SELECT my_datetime_field FROM my_table") d = c.fetchone()[0] print time.mktime(d.timetuple())
我使用以下类似的方法从MySQL日期(本地时间)起从纪元(UTC)开始获得秒数:
calendar.timegm( time.gmtime( time.mktime( time.strptime(t, "%Y-%m-%d %H:%M:%S"))))
有关此问题的更多信息:如何在Python中将本地时间转换为UTC?
将mysql时间转换为纪元:
>>> import time >>> import calendar >>> mysql_time = "2010-01-02 03:04:05" >>> mysql_time_struct = time.strptime(mysql_time, '%Y-%m-%d %H:%M:%S') >>> print mysql_time_struct (2010, 1, 2, 3, 4, 5, 5, 2, -1) >>> mysql_time_epoch = calendar.timegm(mysql_time_struct) >>> print mysql_time_epoch 1262401445
将纪元转换为MySQL可以使用的东西:
>>> import time >>> time_epoch = time.time() >>> print time_epoch 1268121070.7 >>> time_struct = time.gmtime(time_epoch) >>> print time_struct (2010, 3, 9, 7, 51, 10, 1, 68, 0) >>> time_formatted = time.strftime('%Y-%m-%d %H:%M:%S', time_struct) >>> print time_formatted 2010-03-09 07:51:10