python:将日期时间戳转换为epoch unix时间并计算出剩余天数?

python: convert date timestamp to epoch unix time and figure out number of days remaining?

我想把2014-08-14 20:01:28.242转换成一个unix时间戳245293529385,然后用当前时间戳减去这个时间戳,这样就可以算出过去多少天了,最终还剩下多少天了,方法是从14中减去这个值。

场景:用户注册后,我想倒数他们试用期的剩余天数。


时间。快去营救!使用格式字符串%Y-%m-%d %H:%M:%S.%f。例如:

1
2
3
4
   import time
   t = '2014-08-14 20:01:28.242'
   ts = time.strptime(t, '%Y-%m-%d  %H:%M:%S.%f')
   timestamp = time.mktime(ts)

现在要将其转换为日期时间(从:如何将python time.struct_time对象转换为日期时间对象?):

1
2
   from datetime import datetime
   dt = datetime.fromtimestamp(timestamp)


有两部分:

将输入时间字符串转换为日期时间对象

1
2
3
4
#!/usr/bin/env python
from datetime import datetime

dt = datetime.strptime('2014-08-14 20:01:28.242', '%Y-%m-%d  %H:%M:%S.%f')

将datetime对象转换为unix时间("从epoch开始的秒数")。

结果取决于输入时间使用的时区,例如,如果输入是UTC格式,则相应的POSIX时间戳为:

1
2
timestamp = (dt - datetime(1970,1,1)).total_seconds()
# -> 1408046488.242

如果您的输入是在本地时区,那么看看如何用python将本地时间转换为UTC?