@ user3778327: todayVariable hat bereits das aktuelle Jahr und den aktuellen Monat.
JFS
18
Verwenden Sie für diese Lösung from datetime import datetimenicht einfachimport datetime
jpobst
@jpobst Ich verwende Python 3.8.1 & datetime-4.3 zope.interface-4.7.1, und der obige Code (mit import datetime ) funktioniert für mich. Wenn ich von datetime importiere datetime , wird mir AttributeError ausgegeben: Typ Objekt 'datetime.datetime' hat kein Attribut 'datetime'
Funktioniert, danke! Gibt es einen Vorteil gegenüber .now()nicht .today()wie in anderen Antworten verwendet? Die now()Funktion ist kürzer, wird häufiger verwendet ... aber gibt es einen Grund, sie übereinander zu verwenden, wenn man nur wissen möchte, welches Jahr es ist?
Luc
1
@ Hashlash Danke! Um anderen einen Klick zu ersparen: Nein, nicht wirklich
Luc
Was macht from datetimeund warum brauchst du es?
Cadoiz
1
@Cadoiz - Das datetime-Paket enthält einige Submodule - das dateSubmodul ( from datetime import date), das sich nur mit Datumsangaben befasst, das timeSubmodul, das sich mit Zeiten befasst, und das leider benannte datetimeSubmodul, das beides ausführt. Es gibt auch timedeltaund tzinfodort. Man könnte einfach import datetimedas ganze Paket mit allen Submodulen bekommen, aber dann würden Methodenaufrufe wie datetime.datetime.now()oder aussehen datetime.date.today(). In der Regel ist es aus mehreren Gründen besser, nur die Komponenten zu importieren, die Sie benötigen.
Dannysauer
68
Verwenden:
from datetime import datetime
current_month = datetime.now().strftime('%m') // 02 //This is0 padded
current_month_text = datetime.now().strftime('%h') // Feb
current_month_text = datetime.now().strftime('%B') // February
current_day = datetime.now().strftime('%d') // 23 //This is also padded
current_day_text = datetime.now().strftime('%a') // Fri
current_day_full_text = datetime.now().strftime('%A') // Friday
current_weekday_day_of_today = datetime.now().strftime('%w') //5 Where 0is Sunday and6is Saturday.
current_year_full = datetime.now().strftime('%Y') // 2018
current_year_short = datetime.now().strftime('%y') // 18 without century
current_second= datetime.now().strftime('%S') //53
current_minute = datetime.now().strftime('%M') //38
current_hour = datetime.now().strftime('%H') //16 like 4pm
current_hour = datetime.now().strftime('%I') // 04 pm
current_hour_am_pm = datetime.now().strftime('%p') // 4 pm
current_microseconds = datetime.now().strftime('%f') // 623596 Rarely we need.
current_timzone = datetime.now().strftime('%Z') // UTC, EST, CST etc. (empty string if the object is naive).
Dadurch erhalten Sie den aktuellen Monat und das aktuelle Jahr im Ganzzahlformat. Wenn Sie möchten, dass es sich um Zeichenfolgen handelt, müssen Sie lediglich die Priorität "int" entfernen, während Sie den Variablen curr_yearund Werte zuweisen curr_month.
date.today().strftime("%Y-%m")
?Antworten:
Verwenden:
from datetime import datetime today = datetime.today() datem = datetime(today.year, today.month, 1)
Ich nehme an, Sie wollen den ersten des Monats.
quelle
today
Variable hat bereits das aktuelle Jahr und den aktuellen Monat.from datetime import datetime
nicht einfachimport datetime
Versuchen Sie diese Lösung:
from datetime import datetime currentSecond= datetime.now().second currentMinute = datetime.now().minute currentHour = datetime.now().hour currentDay = datetime.now().day currentMonth = datetime.now().month currentYear = datetime.now().year
quelle
.now()
nicht.today()
wie in anderen Antworten verwendet? Dienow()
Funktion ist kürzer, wird häufiger verwendet ... aber gibt es einen Grund, sie übereinander zu verwenden, wenn man nur wissen möchte, welches Jahr es ist?from datetime
und warum brauchst du es?date
Submodul (from datetime import date
), das sich nur mit Datumsangaben befasst, dastime
Submodul, das sich mit Zeiten befasst, und das leider benanntedatetime
Submodul, das beides ausführt. Es gibt auchtimedelta
undtzinfo
dort. Man könnte einfachimport datetime
das ganze Paket mit allen Submodulen bekommen, aber dann würden Methodenaufrufe wiedatetime.datetime.now()
oder aussehendatetime.date.today()
. In der Regel ist es aus mehreren Gründen besser, nur die Komponenten zu importieren, die Sie benötigen.Verwenden:
from datetime import datetime current_month = datetime.now().strftime('%m') // 02 //This is 0 padded current_month_text = datetime.now().strftime('%h') // Feb current_month_text = datetime.now().strftime('%B') // February current_day = datetime.now().strftime('%d') // 23 //This is also padded current_day_text = datetime.now().strftime('%a') // Fri current_day_full_text = datetime.now().strftime('%A') // Friday current_weekday_day_of_today = datetime.now().strftime('%w') //5 Where 0 is Sunday and 6 is Saturday. current_year_full = datetime.now().strftime('%Y') // 2018 current_year_short = datetime.now().strftime('%y') // 18 without century current_second= datetime.now().strftime('%S') //53 current_minute = datetime.now().strftime('%M') //38 current_hour = datetime.now().strftime('%H') //16 like 4pm current_hour = datetime.now().strftime('%I') // 04 pm current_hour_am_pm = datetime.now().strftime('%p') // 4 pm current_microseconds = datetime.now().strftime('%f') // 623596 Rarely we need. current_timzone = datetime.now().strftime('%Z') // UTC, EST, CST etc. (empty string if the object is naive).
Referenz: 8.1.7. strftime () und strptime () Verhalten
Referenz: strftime () und strptime () Verhalten
Die oben genannten Dinge sind nützlich für jede Datumsanalyse, nicht nur jetzt oder heute. Es kann für jede Datumsanalyse nützlich sein.
e.g. my_date = "23-02-2018 00:00:00" datetime.strptime(str(my_date),'%d-%m-%Y %H:%M:%S').strftime('%Y-%m-%d %H:%M:%S+00:00') datetime.strptime(str(my_date),'%d-%m-%Y %H:%M:%S').strftime('%m')
Und so weiter...
quelle
Sie können die akzeptierte Antwort als Einzeiler schreiben, indem Sie
date.replace
:datem = datetime.today().replace(day=1)
quelle
Sie können immer eine Sub-String-Methode verwenden:
import datetime; today = str(datetime.date.today()); curr_year = int(today[:4]); curr_month = int(today[5:7]);
Dadurch erhalten Sie den aktuellen Monat und das aktuelle Jahr im Ganzzahlformat. Wenn Sie möchten, dass es sich um Zeichenfolgen handelt, müssen Sie lediglich die Priorität "int" entfernen, während Sie den Variablen
curr_year
und Werte zuweisencurr_month
.quelle
datetime.datetime.now().month
ist besser.>>> from datetime import date >>> date.today().month 2 >>> date.today().year 2020 >>> date.today().day 13
quelle
Späte Antwort, aber Sie können auch verwenden:
import time ym = time.strftime("%Y-%m")
quelle