我的日期如下:
November 19th 2015, 12:48:34.402
我需要弄清楚将其转换为时间戳的方法。我正在尝试这种方式,但我找不到合适的模式来格式化它。
time.mktime(datetime.datetime.strptime(parsed["_timestamp"], "%B %d %Y, %H:%M:%S").timetuple())
关于如何获得正确格式的任何建议?
答案 0 :(得分:5)
你的格式化字符串有点偏。您需要包含th
,rd
等,秒的小数点和微秒(%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