Python - 解析字符串并将其转换为时间戳

Python - Parsing and converting string into timestamp

我有下一种格式的字符串:2017-02-14T09:51:46.000-0600

解析字符串并将其转换为时间戳的最佳方法是什么? 我可以选择使用正则表达式或编写自己的解析函数,但是否有任何内置方法可以帮助我?

这是您可以在时间戳中解析和转换字符串的代码形式

import time
import datetime
s = "2017-02-14T09:51:46.000-0600"
time.mktime(datetime.datetime.strptime(s, "%d/%m/%Y").timetuple())

在这种情况下,预期输出是

1322697600.0

第一部分是创建日期时间对象:

from datetime import datetime

date_string = "2017-02-14T09:51:46.000-0600"
# I'm using date_string[:-9] to skip ".000-0600"
format_date = datetime.strptime(date_string, '%Y-%m-%dT%H:%M:%S.%f%z'))

之后的格式日期是:

print(format_date)
2017-02-14 09:51:46

时间戳为:

print(format_date.timestamp())
1487062306.0

这里稍微澄清一下,关于 python reference page,您可以查看我使用的 '%Y-%m-%dT%H:%M:%S.%f%z') 格式说明符的定义。

  • %Y: 以世纪为十进制数的年份,例如1970, 1988, 2001, 2013
  • %m:以零填充的十进制数表示的月份(例如 01、02、...、12)
  • %d:以补零的十进制数字形式表示的月份中的第几天(例如 01、02、...、31)
  • %H: 小时 (24 小时制)作为零填充的十进制数(例如 00、01、...、23)
  • %M:分钟作为零填充的十进制数(例如 00、01、...、59)
  • %S:秒为补零的十进制数(例如 00、01、...、59)
  • %f: 微秒为十进制数,左边补零 (000000, 000001, ..., 999999)
  • %z:+HHMM 或 -HHMM 形式的 UTC 偏移量,如果对象是原始的,则为空字符串(空或 +0000、-0400、+1030)