如何确定给定日期2017-08-23之前一年的python datetime?

我正在尝试确定2017年8月23日之前一年的日期。

我看到的所有示例中,给定日期之前的一年都显示使用datetime.datetime.now()。我需要确定2017年8月23日之前的一年。

last_date = 2017-08-23
one_year_prior = last_date - dt.timedelta(days=3*365)
  

--'str'和'datetime.timedelta'不受支持的操作数类型

我希望能在2017-08-23之前得到一年。在下一部分作业中,我需要使用格式为yyyy-mm-dd的日期。

a962319828 回答:如何确定给定日期2017-08-23之前一年的python datetime?

要应用timedelta(),您需要将字符串转换为日期时间。一种方法是使用strptime()

>>> from datetime import datetime,timedelta

>>> s = "2017-08-23"

>>> dt = datetime.strptime(s,"%Y-%m-%d")

>>> one_year_prior = dt - timedelta(days=365)
>>> one_year_prior
datetime.datetime(2016,8,23,0)
,

使用dateutil.parser创建日期

date(2012,1,1) + timedelta(days=365) → date(2012,12,31)

然后使用它

使用timedelta years年时请注意,可能会带来不便:

function btnLogin(){
      firebase.auth().onAuthStateChanged(function(user){
       if(user){
        var time = new Date();
         var options = {
         weekday: "long",month: "long",day:  "2-digit",year: "numeric",};

  var message = $("#d").val(); 

  var userId = firebase.auth().currentUser;
  var uid = userId.uid;
    var myref = firebase.database().ref('users').child(uid).child('Blogs');


    var blogInformation =
    {
        "desc": message,"time": time.toLocaleString('en-US',{hour: 'numeric',minute: 'numeric',hour12: true}),"date": time.toLocaleDateString('en-US',options),"counter": 100000000 - counter
    }

    var newPostRef = myref.push();
    newPostRef.set(blogInformation,function(err){
        if(err){
            $("#result").attr("class","alert alert-danger");
            $("#result").html(err.message);
        }else{
            $("#result").attr("class","alert alert-success");
            $("#result").html("Blog has been added successfully.");

            window.open("","_self");
        }
    });

          }

      });


       resetForm();

    }
,

您的对象last_date必须是datetime对象。您可以使用last_date = datetime.date(<year>,<month>,<day>)将其设置为日期时间对象,然后公式就可以正常工作了。您可以将结果对象转换为str,以相同的格式获得答案。

,

这是一年前的事,应该也为您格式化

y = datetime.datetime(2017,23) - datetime.timedelta(days=1*365)                                                                                       

In [457]: y                                                                                                                                                   
datetime.datetime(2016,0)

print(str(y.year) + '-' + str(y.month) + '-' + str(y.day))
2016-8-23

本文链接:https://www.f2er.com/3130650.html

大家都在问