如何从input_date获取月份开始日期

时间:2019-07-29 08:04:53

标签: python date datetime

我正在开发一个API,其中用户以以下格式输入输入日期:2019-07-29,该日期将转换为日期时间以得到“ 2019-07-29”。这将用于对数据库的查询。

input_date = str(input_date)
input_date_formatted = "'" + datetime.strptime(input_date, '%Y-%m-%d').strftime('%Y-%m-%d') + "'"

我正在尝试以XXXX-XX-01这样的输入日期获取月份的开始日期。有什么想法吗?

3 个答案:

答案 0 :(得分:3)

如果以后将其用作日期时间而不是字符串,则可以按以下步骤进行操作(假设input_date是字符串):

date = datetime.strptime(input_date, '%Y-%m-%d')
first_day_of_month = date.replace(day=1)

答案 1 :(得分:0)

我假设您可能需要实际输入和月份的开始日期。 按照这种逻辑,下面的代码可能对您有用。

from datetime import datetime
input_date = '2019-07-29'
input_date = str(input_date)
input_date_formatted = "'" + datetime.strptime(input_date, '%Y-%m-%d').strftime('%Y-%m-%d') + "'"
input_date_formatted = input_date_formatted[:9]+"01'"
print(input_date_formatted)

答案 2 :(得分:0)

from datetime import datetime
input_date = '2019-07-29'
input_date_object = datetime.strptime(input_date, '%Y-%m-%d')
first_date_object = input_date_object.date().replace(day=1)
print (first_date_object) # <class 'datetime.date'>
print (first_date_object.strftime('%Y-%m-%d')) # <class 'str'>

输出:

2019-07-01
2019-07-01

注意:

  

使用datetime.date仅获取日期,而不显示小时:分钟:秒

     

函数replace()用于替换特定或所有属性   日期时间对象。

     日期时间对象的

Date属性,可以用   replace()函数:

     
      
  •   
  •   
  •