如何将strftime或字符串格式转换为python中的timestamp / Date?

时间:2017-07-24 16:55:12

标签: python datetime timestamp type-conversion strftime

我对Python编码很新。我试图获取一个月的开始和结束日期,然后将其与同一个Excel中的另一个日期列进行比较。

我只需要mm/dd/yy格式的日期,但不需要时间。 final_month_end_date基本上是一种字符串格式,我将其与实际日期进行比较,但它给出了一个错误说

  

“TypeError:无法将类型''时间戳'与'str'类型进行比较”

我也尝试了.timestamp()功能但没有用。 我该如何解决这个问题?

import datetime as dt
import strftime

now1 = dt.datetime.now()
current_month= now1.month
current_year= now1.year
month_start_date= dt.datetime.today().strftime("%Y/%m/01")
month_end_date= calendar.monthrange(current_year,current_month)[1]
final_month_end_date= dt.datetime.today().strftime("%Y/%m/"+month_end_date)

1 个答案:

答案 0 :(得分:0)

要将字符串转换为DateTime对象,请使用datetime.strptime。获得datetime对象后,使用time.mktime将其转换为unix时间戳。

import time
import datetime as dt
from time import mktime
from datetime import datetime

now1 = dt.datetime.now()
current_month= now1.month
current_year= now1.year
month_start_date= dt.datetime.today().strftime("%Y/%m/01")
month_end_date= "30"
final_month_end_date= dt.datetime.today().strftime("%Y/%m/"+month_end_date)

# Use datetime.strptime to convert from string to datetime
month_start = datetime.strptime(month_start_date, "%Y/%m/%d")
month_end = datetime.strptime(final_month_end_date, "%Y/%m/%d")

# Use time.mktime to convert datetime to timestamp
timestamp_start = time.mktime(month_start.timetuple())
timestamp_end = time.mktime(month_end.timetuple())

# Let's print the time stamps
print "Start timestamp: {0}".format(timestamp_start)
print "End timestamp: {0}".format(timestamp_end)