如何将格式为“%d/%m/%Y”的字符串转换为时间戳?

"01/12/2011" -> 1322697600

当前回答

你可以从两个方向,unix epoch <==> datetime:

import datetime
import time


the_date = datetime.datetime.fromtimestamp( 1639763585 )



unix_time = time.mktime(the_date.timetuple())

assert  ( the_date == datetime.datetime.fromtimestamp(unix_time) ) & \
        ( time.mktime(the_date.timetuple()) == unix_time         )   

其他回答

我想给初学者(像我一样)一个答案:

你有日期字符串“01/12/2011”。然后可以按照“%d/%m/%Y”的格式编写。如果你想格式化成另一种格式,比如“2015年7月9日”,这里有一个很好的备忘单。

导入datetime库。 使用datetime。Datetime类来处理日期和时间组合。 使用strptime方法将字符串datetime转换为对象datetime。 最后,使用timestamp方法以浮点形式获取Unix纪元时间。所以,

import datetime
print( int( datetime.datetime.strptime( "01/12/2011","%d/%m/%Y" ).timestamp() ) )

# prints 1322712000
>>> int(datetime.datetime.strptime('01/12/2011', '%d/%m/%Y').strftime("%s"))
1322683200
>>> import time
>>> import datetime
>>> s = "01/12/2011"
>>> time.mktime(datetime.datetime.strptime(s, "%d/%m/%Y").timetuple())
1322697600.0

我使用ciso8601,它比datetime的strptime快62倍。

t = "01/12/2011"
ts = ciso8601.parse_datetime(t)
# to get time in seconds:
time.mktime(ts.timetuple())

你可以在这里了解更多。

首先,必须使用strptime类将字符串转换为struct_time格式。

然后使用mktime从那里得到你的浮点数。