Ich muss den ersten Tag des letzten Monats von jedem Datum bekommen. Ich weiß, dass ich monthdelta(datetime(2010,3,30), -1)
verwenden kann, um letzten Monat zu erhalten, aber es gibt den ersten Tag nicht zurück.Einen Monat von einem Datum in Python subtrahieren?
Antwort
Versuchen Sie folgendes:
from datetime import date
d = date.today()
d.replace(
year=d.year if d.month > 1 else d.year - 1,
month=d.month - 1 if d.month > 1 else 12,
day=1
)
Funktioniert das, wenn der aktuelle Monat Januar ist? – RemcoGerlich
Ich versuche 'df ['used_at']> Daten [i] .replace (Monat = Datum.Monat - 1, Tag = 1)' aber im Gegenzug nur 1 Tag – ldevyataykina
Also, was ist mit Jahr? –
Dies kann durch erste Berechnung des ersten Tag des laufenden Monats (oder einem bestimmten Datum) durchgeführt werden, dann ist es mit datetime.timedelta (Tage = 1) subtrahiert, die Sie gibt die letzter Tag des vorherigen Monats.
Zur Demonstration, hier ist ein Beispielcode:
import datetime
def get_lastday(current):
_first_day = current.replace(day=1)
prev_month_lastday = _first_day - datetime.timedelta(days=1)
return prev_month_lastday.replace(day=1)
unten gewählt, da die aktuelle Antwort gibt Ihnen den * letzten * Tag des letzten Monats, nicht die * erste * – donkopotamus
@donkopotamus Danke für das Aufzeigen, habe ich einen Fehler gemacht. Ich habe den Beitrag bearbeitet. – purrogrammer
wie bereits. Unter Verwendung von datetime
und datetutil
.
(wenn datetutil
nicht verfügbar für Sie pip install python-dateutil
installieren)
In [1]: from datetime import datetime
In [2]: import dateutil.relativedelta
In [3]: today_date = datetime.now().date()
In [4]: today_date
Out[1]: datetime.date(2016, 7, 5)
In [5]: last_month = today_date - dateutil.relativedelta.relativedelta(months=1)
In [6]: last_mont_first_date = last_month.replace(day=1)
In [7]: last_mont_first_date
Out[2]: datetime.date(2016, 6, 1)
Eingang:
datetime.date(2016, 7, 5)
Ausgabe
datetime.date(2016, 6, 1)
Ich versuche 'df ['used_at']> (dates [i] - dateutil.relativedelta.relativedelta (Monate = 1))). Replace (day = 1)' aber es gibt 'TypeError: replace() ein unerwartetes Schlüsselwort Argument 'Tag' – ldevyataykina
Vorher versuche ich 'df ['used_at']> Daten [i] .replace (Monat = Datum.Monat - 1, Tag = 1)' aber es gibt nur einen Tag – ldevyataykina
Ich denke, Sie versuchen andere Dinge. –
- 1. Subtrahieren Sie einen Monat von Datetime.Today
- 2. Tage von einem Datum in bash subtrahieren
- 3. SQL Query Subtrahieren 1 Monat
- 4. PHP subtrahieren 1 Monat von Datum formatiert mit Datum ('m-Y')
- 5. Subtrahieren von Daten mit Python
- 6. Subtrahieren Monat und Tage mit Datumadd()
- 7. Excel Formel Anzahl von Tagen von einem Datum zu subtrahieren
- 8. android subtrahieren einen Eingang von einem anderen
- 9. Unable subtrahieren Tage von Datum in Java
- 10. Ich möchte einen Monat mit SqlContext zu einem Datum hinzufügen
- 11. Wie subtrahiert man einen Tag von einem Datum?
- 12. Monat Name von Datum in Oracle
- 13. Erhalten Monat Nummer von einem Datum in Javascript
- 14. Um einen Monat zum aktuellen Datum hinzuzufügen
- 15. PHP Datum -1 Monat heute funktioniert nicht
- 16. Nur Monat auswählen von Datum in Laravel
- 17. Datum durch Subtrahieren X Anzahl der Tage von einem bestimmten Datum in Javascript
- 18. PHP/PDO aktuelles Datum plus einen Monat in MYSQL einfügen
- 19. JavaScript Datum Subtrahieren 4 Stunden
- 20. Wie Datum/Uhrzeit Komponenten mit einem berechneten Intervall hinzufügen/subtrahieren?
- 21. R: Hinzufügen von 1 Monat zu einem Datum
- 22. Subtrahieren von Daten mit Ruby
- 23. C++ Werte zum Datum addieren oder subtrahieren
- 24. Power Formatierung Datum Monat
- 25. Get Monat eines bestimmten Datum
- 26. Subtrahieren Array von einem anderen in. NET
- 27. Subtrahieren von datetime.datetime.now() von einem Datetime-Objekt
- 28. Monat Kalender falsches Datum abrufen?
- 29. Subtrahieren von Daten in Mongo
- 30. Parse Monat und Datum von Zeichenfolge DateTime
Warum nicht 'Datetime (2010, 3 - 1, 1) '? – jonrsharpe
Weil ich viel Datum habe '2016-05-13 19:05:38, 2016-06-18 19:05:46, 2016-06-12 19:06:46, 2016-03-13 19:07 : 04, 2016-02-13 19:09:59, 2016-09-13 19:11:11 'und zu allen Datum möchte ich ersten Tag des letzten Monats bekommen – ldevyataykina