关于python:如何将日期和时间字符串转换为POSIX时间?

How to convert date and time string to POSIX time?

我有两条线:

1
2
date = '2017-05-09'
time = '19:28'

如何将其转换为posix时间?


您可以按如下方式处理:

将字符串日期和时间转换为datetime.datetime实例。将此实例转换为POSIX时间:

1
2
3
4
5
6
7
8
import datetime
import time

my_date = '2017-05-09'
my_time = '19:28'

dt = datetime.datetime.strptime(my_date +"" + my_time,"%Y-%m-%d %H:%M")
posix_dt = time.mktime(dt.timetuple())


您可能需要使用datetime库。另外,请记住,下面介绍的两种方法预计是本地时间。

1
2
>>> date = '2017-05-09'
>>> time_ = '19:28'

对于2.7.+版本(也可能是较低版本)的python,首先必须将字符串转换为datetime对象。

1
2
3
4
5
>>> import datetime as dt
>>> date_object = dt.datetime.strptime('{d} {t}'.format(d=date, t=time_),
                                      "%Y-%m-%d %H:%M")
>>> date_object
datetime.datetime(2017, 5, 9, 19, 28)

请注意,我将您的变量time改为time_,以便以后不会造成名称冲突。使用date_object很容易获得posix时间。

1
2
3
>>> import time
>>> time.mktime(date_object.timetuple())
1494350880.0 #Given my local time !

对于3.+版本的python,它甚至比上面更直接。

1
2
3
4
>>> import datetime as dt
>>> dt.datetime.strptime('{d} {t}'.format(d=date, t=time_),
                         '%Y-%m-%d %H:%M').timestamp()
1494350880.0 #Given my local time !