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

时间:2017-06-22 05:56:28

标签: regex python-2.7 parsing datetime datetime-format

我有以下格式的字符串: 2017-02-14T09:51:46.0​​00-0600

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

2 个答案:

答案 0 :(得分:2)

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

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 :Microsecond为十进制数,左边为零填充(000000,000001,...,999999)
  • %z :格式+ HHMM或-HHMM的UTC偏移量,如果对象天真,则为空字符串,(空或+ 0000,-0400,+ 1030)

答案 1 :(得分:0)

以下是您可以在时间戳

中解析和转换字符串的代码表单
>>> import time
  >>> import datetime
    >>> s = "2017-02-14T09:51:46.000-0600"
    >>> time.mktime(datetime.datetime.strptime(s, "%d/%m/%Y").timetuple())
        1322697600.0