当前位置: 首页 > 面试题库 >

在mysql datetime和python timestamp之间转换的正确方法是什么?

盖晋
2023-03-14
问题内容

根据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

>>> import datetime

在这里,我们设置示例时间戳ts和格式f

>>> ts = '2013-01-12 15:27:43'
>>> f = '%Y-%m-%d %H:%M:%S'

与您上面的操作类似,我们使用strptime函数(from datetime.datetimedatetime根据格式参数将字符串转换为对象:

>>> datetime.datetime.strptime(ts, f)
datetime.datetime(2013, 1, 12, 15, 27, 43)

现在反过来-在这里我们使用datetime.datetime.now()获取当前时间作为datetime对象:

>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2013, 1, 12, 0, 46, 54, 490219)

在这种datetime情况下,该strftime方法实际上是在datetime对象本身上调用的,格式参数为参数:

>>> now.strftime(f)   
'2013-01-12 00:46:54'

在您的情况下,出现错误的原因是因为time.time()返回浮点数:

>>> time.time()
1357980846.290231

但是time.strftime需要一个time元组,类似于上面的内容。无需陷入时间的疯狂漩涡,诸如之类的函数time.localtime()将返回上述time元组,并按预期返回:

>>> 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'


 类似资料:
  • 问题内容: 我是Hibernate的新手,并且正在编写一个简单的方法来返回与特定过滤器匹配的对象列表。似乎是自然的回报类型。 不管我做什么,除非雇用了ugly,否则我似乎都无法使编译器满意。 我想摆脱它。但是如果我这样做,我会得到警告 (我可以忽略它,但是我不想一开始就得到它),如果我删除泛型以符合返回类型,则会收到警告 我注意到 确实 声明了;但它是完全不同的类型- 返回a 作为原始类型。我发现

  • 问题内容: 我是Hibernate的新手,并且正在编写一个简单的方法来返回与特定过滤器匹配的对象列表。似乎是自然的回报类型。 不管我做什么,除非聘用了丑陋的人,否则似乎都无法使编译器满意。 我想摆脱它。但是如果我这样做,我会得到警告 (我可以忽略它,但是我不想一开始就得到它),如果我删除泛型以符合返回类型,则会收到警告 我注意到 确实 声明了;但这是完全不同的类型- 返回a 作为原始类型。我发现最

  • 我正在开发一个包含一个活动和多个片段的android应用程序。我的应用程序包含导航抽屉。它的布局包含listview。单击它的项目,我用ft.replace(R.id.my\u placehodler,new MyFragment())动态更改片段,并将事务添加到。当我每次实例化新片段时都进行新事务。在我看来,这不是一个好办法。你能给我一些关于进行片段事务的正确方法的建议吗?

  • 我有Maven应用程序,具有3个不同的配置文件,如下所示 我有这样的Maven结构: src/main/config/default/WEB-INF/WEB。xml src/main/config/dev/WEB-INF/WEB。xml src/main/config/test/WEB-INF/web.xml src/main/config/prod/WEB-INF/web.xml src/mai

  • 控制人员之间的正确通信方式是什么? 我目前正在使用一个可怕的软糖,涉及:

  • 问题内容: 这个问题应该比关于更多。 我有一个子类(在python 2.7中,numpy 1.6.2),并且我发现在对象时未列出的字段名称(因此,ipython的自动完成功能无效)。 为了修复它,我尝试在子类中重写,如下所示: 结果是:。(我发现这里实际上应该在python 3.3中工作…) 作为一种解决方法,我尝试了: 据我所知,这是可行的,但当然并不优雅。 问题: 后一种解决方案对我而言是否正