如何在Python中将'ctime'转换为'datetime'?

如何在Python中将'ctime'转换为'datetime'?,python,datetime,Python,Datetime,目前对我来说,t是“2012年4月21日星期六11:58:02”。我有更多这样的数据 我的问题是: 如何在Python中将t转换为datetime?有什么模块可以连接吗 我试着做一个timedict,然后转换t,但感觉在Python中这不是最好的方法 详细信息: 我有一个ctime列表(比如['Sat Apr 21 11:56:48 2012','Sat Apr 21 11:56:48 2012']) 我想将内容转换为datetime,然后将其存储在带有时间戳的db中 试试datetime

目前对我来说,
t
“2012年4月21日星期六11:58:02”
。我有更多这样的数据

我的问题是:

  • 如何在Python中将
    t
    转换为
    datetime
    ?有什么模块可以连接吗
我试着做一个time
dict
,然后转换
t
,但感觉在Python中这不是最好的方法

详细信息:

  • 我有一个
    ctime
    列表(比如
    ['Sat Apr 21 11:56:48 2012','Sat Apr 21 11:56:48 2012']
  • 我想将内容转换为
    datetime
    ,然后将其存储在带有
    时间戳的
    db

试试
datetime.strtime()

请参阅:

您应该使用:此函数根据格式解析表示时间的字符串。返回值是一个

与ctime()返回的格式匹配的

因此,在您的情况下,只需尝试以下行,因为默认格式是来自ctime的格式:

导入日期时间
导入时间
datetime.datetime.strtime(time.ctime(),%a%b%d%H:%M:%S%Y)
返回:
datetime.datetime(2012,4,21,4,22,00)

短字符。不

注意:使用
time.ctime()
&
datetime.fromtimestamp()
时,在转换本地时区时也可能会遇到历史问题。如这些答案的评论所述,以及

长的。 或者,如果您需要一个可以格式化的“日期和时间”,那么有很多方法可以使用,甚至可以使用python,在这里,最后在其他答案中提到

已知日期差异 如果您不担心或使用,或希望使用EPOCH-Time,请确保指定和使用此选项

这是为了

“当你指的是Unix时间时,请不要再叫它“大纪元时间”

我的用法 虽然这一切都很疯狂,但也没那么糟糕。我以前曾在许多公司工作过,但在工作场所通常不会出现这种情况,因为通常都会遇到这种情况

所以,除了这些……这是我个人最喜欢的:

我用这个做我自己的东西:

从时间导入strftime
打印(strftime(“%Y%m%d\u%H%m%S”))
我返回:年、月、日、时、分、秒

import time
t = time.ctime()
我在函数中使用它:

def_now():
“”“模块报告格式化的时间。”“”
ymd=(strftime(“%Y%m%d\u%H%m%S”))
返回ymd

只需要一些简单的东西就可以让我的日志井然有序。

只需使用
%c

20180827_021106

为什么不直接从datetime导入datetime呢?
datetime.now()
确切地说,我有一个字符串:“Sat Apr 21 11:58:02 2012”,我想将其转换为datetime。从这样的字符串转换不太理想,但这个问题得到了答案。我尝试了strTime,但它无法正常工作。所以我在这里问了一个问题,我的意思是我无法使用该方法将“Sat Apr 21 11:58:02 2012”转换为datetime。也许可以尝试向我们展示您的代码,您尝试使用datetime.strTime()的位置,并向我们展示您的代码给出的错误输出。谢谢,我使用的方法不正确。datetime.strTime(time.ctime(),“%a%b%d%H:%M:%S%Y”)的工作方式我尝试了几个小时,但仍然无法将“Sat Apr 21 11:58:02 2012”正确转换为datetime。谢谢,这是我的错,我输入了错误的参数。datetime.strTime(time.ctime(),“%a%b%d%H:%M:%S%Y”)工作抱歉,我不知道如何结束我的问题?你能告诉我吗?@flreey在你问题的每个答案的左边,都有一个小“V”符号,你可以点击。当你的问题得到解决时,你通常会点击它,这样其他人就可以看到好的答案,你会获得一些声望点数,并且这个答案也会被接受。它刚好低于每个答案左边的票数。您应该对所有问题都这样做。这不是转换ctime对象。虽然此代码可能会回答此问题,但提供有关此代码为什么和/或如何回答此问题的其他上下文将提高其长期价值。
datetime.datetime.strptime(time.ctime(), "%c")