30869


Pythonを使って日付を使って先月を欲しいです。  
こちらの場合だと、うまくいかない月もあります。

[code]

    import datetime
    sengetu = datetime.datetime.now()+datetime.timedelta(days=-30)
    sengetu = sengetu.strftime("%Y-%m-%d")
    
    print(sengetu)
    
[/code]

> Traceback (most recent call last): File  
>  "C:/Users/somen/PycharmProjects/2/s.py", line 2, in  
>  sengetu = datetime.datetime.now()+timedelta(days=-30) NameError: name
> 'timedelta' is not defined


CC BY-SA 3.0
2016-12-02T02:21:13.907
30824
2016-12-03T20:20:48.383
2016-12-03T20:20:48.383
7973
7973
question
python
Python Datetime 先月を取得したいです。

[code]

    timedelta(days=-30)
    
[/code]

このコードを

[code]

    datetime.timedelta(days=-30)
    
[/code]

に修正してください。


CC BY-SA 3.0
2016-12-02T02:40:31.430
30827
2016-12-02T02:40:31.430
806
30824
answer


-30日だと、うまくいかない月もありますので、`dateutil`モジュールの使用をおすすめします。
[code]

    from datetime import date
    from dateutil.relativedelta import relativedelta
    
    today = date.today()
    sengetu = today - relativedelta(months=1)
    
    print(sengetu)
    
[/code]

`dateutil`モジュールは`pip`でインストールできます。

[code]

    pip3 install python-dateutil
    
[/code]

※Python3の場合


CC BY-SA 3.0
2016-12-03T11:12:22.680
30869
2016-12-03T11:12:22.680
19724
30824
answer