34
import time
t = time.ctime()

目前对我来说,t'Sat Apr 21 11:58:02 2012'。我有更多这样的数据。

我的问题是:

  • 如何在 Python中转换t为?datetime有什么模块吗?

我试着花时间dict然后 convert t,但觉得这不是在 Python 中做到这一点的最佳方式。

细节:

  • 我有一个ctime清单(如['Sat Apr 21 11:56:48 2012', 'Sat Apr 21 11:56:48 2012'])。
  • 我想将内容转换为datetime,然后将其存储在dbwith 中timestamp
4

4 回答 4

45

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

format 参数默认%a %b %d %H:%M:%S %Y匹配 ctime() 返回的格式。

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

import datetime
import time

datetime.datetime.strptime(time.ctime(), "%a %b %d %H:%M:%S %Y")

回报:datetime.datetime(2012, 4, 21, 4, 22, 00)

于 2012-04-21T04:16:26.287 回答
3

试试datetime.strptime()

请参阅: http ://docs.python.org/library/datetime.html#datetime.datetime.strptime

于 2012-04-21T04:12:04.103 回答
3

只需使用%c

datetime.datetime.strptime(time.ctime(), "%c")
于 2020-06-19T18:52:25.000 回答
-2

短篇。不。

ctime() 不使用语言环境信息。

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

长。

或者,如果您需要可以格式化的“日期和时间”,则可以使用多种方式使用time.strftimedatetime,甚至使用 python和此处的 posix_time,最后在此处的其他答案中提及。pandasdatetime.strptime

已知日期差异

如果您不担心时区儒略历模糊时间或使用UNIXTIMESTAMP转换为本地时间,希望使用 EPOCH 时间,请务必在计算中指定 Notable epoch 日期,这适用于unix

我在这个线程上感谢马特

“当您的意思是 Unix 时间时,请不要再称它为“纪元时间””......

我的用法

现在尽管如此疯狂,但它并没有那么糟糕。我以前与许多公司合作过,这通常不会在工作场所出现,因为它通常已经处理过。

所以,除此之外……这是我个人的最爱:

我将它用于我自己的东西:time.strftime

from time import strftime

print(strftime('%Y%m%d_%H%M%S'))

我返回:年、月、日、_、时、分、秒

20180827_021106

我在一个函数中使用:

def _now():
    """The Module Reports A Formatted Time."""
    ymd = (strftime('%Y%m%d_%H%M%S'))
    return ymd

只是一些简单的东西可以让我的日志井井有条。

于 2018-08-27T10:45:08.790 回答