python

时间:2015-11-20 07:54:13

标签: python datetime timestamp

我的日期如下:

November 19th 2015, 12:48:34.402

我需要弄清楚将其转换为时间戳的方法。我正在尝试这种方式,但我找不到合适的模式来格式化它。

time.mktime(datetime.datetime.strptime(parsed["_timestamp"], "%B %d %Y, %H:%M:%S").timetuple())

关于如何获得正确格式的任何建议?

2 个答案:

答案 0 :(得分:5)

你的格式化字符串有点偏。您需要包含thrd等,秒的小数点和微秒(%f)。我们会找到合适的th /等。使用split()

>>> a = 'November 19th 2015, 12:48:34.402'
>>> time.mktime(datetime.datetime.strptime(a, "%B %d{} %Y, %H:%M:%S.%f".format(a.split()[1][-2:])).timetuple())
1447966114.0
>>> a = 'November 23rd 2015, 12:48:34.402'
>>> time.mktime(datetime.datetime.strptime(a, "%B %d{} %Y, %H:%M:%S.%f".format(a.split()[1][-2:])).timetuple())
1448311714.0

答案 1 :(得分:4)

这应该有效:

import datetime
import time
timestring = "November 19th 2015, 12:48:34.402"
timeformat = "%B %dth %Y, %H:%M:%S.%f"
print int(time.mktime(datetime.datetime.strptime(timestring, timeformat)))
1447962514

如果您对使用dateutil感到满意,那么您不必太担心格式:

import dateutil.parser

timestamp = int(time.mktime(dateutil.parser.parse(timestring).timetuple()))
print timestamp
1447962514