手动假设日期 - 用自己的假设更新日期

时间:2016-02-04 13:27:37

标签: python date

基本上我有一些用户的creation_date格式如下:

    # Format creation date
    creation_date = datetime.datetime.strptime(creation_date, '%Y-%m-%d')   

因此它将以年 - 月 - 日格式提供用户的创建日期。

然后我只需要约会日期(IE。,%d)所以我采取了以下相同的步骤:

    # Get the day only
    creation_just_day = creation_date.day
    print creation_just_day

现在如果特定日期在以下列表中,我需要假设'28'的日期,其完成如下:

    # Items need to consider for date consideration
    date_assume_list = [29,30,31]

    if creation_just_day in date_assume_list:
            creation_just_day = 28

最后,现在我需要使用上面的作业在这里制作如下日期。

所以它应该按如下方式打印日期:

2016-01-28

2 个答案:

答案 0 :(得分:2)

您可以使用datetime.replace方法。此方法返回一个新的datetime对象,其中替换了原始datetime对象的一个​​或多个值。当然,如果您不再需要,可以覆盖原始datetime对象。

例如,

import datetime

for creation_date in ('2016-02-05', '2016-01-29', '2015-12-31',): 
    creation_date = datetime.datetime.strptime(creation_date, '%Y-%m-%d')
    print '\nBefore:', creation_date
    if creation_date.day in (29, 30, 31):
        creation_date = creation_date.replace(day=28)
    print 'After: ', creation_date

输出

Before: 2016-02-05 00:00:00
After:  2016-02-05 00:00:00

Before: 2016-01-29 00:00:00
After:  2016-01-28 00:00:00

Before: 2015-12-31 00:00:00
After:  2015-12-28 00:00:00

答案 1 :(得分:1)

此行,您还可以使用creation_date中的其他信息:

print dir(state)