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

Shi*_*hna 0 regex datetime parsing datetime-format python-2.7

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

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

Ale*_*gić 7

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

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'))
Run Code Online (Sandbox Code Playgroud)

之后的格式日期是:

print(format_date)
2017-02-14 09:51:46
Run Code Online (Sandbox Code Playgroud)

时间戳是:

print(format_date.timestamp())
1487062306.0
Run Code Online (Sandbox Code Playgroud)

这里稍微澄清一下,在 python参考页面上,您可以看到'%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 : UTC 偏移量,格式为 +HHMM 或 -HHMM,如果对象是幼稚的,则为空字符串,(空或 +0000、-0400、+1030)