@ user3778327: la todayvariable a déjà l'année et le mois en cours.
jfs
18
Pour cette solution, assurez-vous d'utiliser from datetime import datetimeplutôt que simplementimport datetime
jpobst
@jpobst J'utilise Python 3.8.1 & datetime-4.3 zope.interface-4.7.1, et le code ci-dessus (avec import datetime ) fonctionne pour moi. Si j'écris à partir de datetime import datetime , cela me lance AttributeError: l'objet de type 'datetime.datetime' n'a pas d'attribut 'datetime'
Fonctionne, merci! Y at - il un avantage sur .now()plutôt que .today()tel qu'il est utilisé dans d' autres réponses? La now()fonction est plus courte, elle est plus couramment utilisée ... mais y a-t-il une raison d'utiliser l'une sur l'autre alors que tout ce que l'on veut savoir c'est de quelle année il s'agit?
Luc
1
@hashlash Merci! Pour sauver les autres un clic: non, pas vraiment
Luc
que fait from datetime-on et pourquoi en avez-vous besoin?
Cadoiz le
1
@Cadoiz - Le paquet datetime a quelques sous-modules - le datesous - module ( from datetime import date) qui ne traite que des dates, le timesous - module qui traite des heures, et le datetimesous - module malheureusement nommé qui fait les deux. Il y a aussi timedeltaet tzinfolà-dedans. On pourrait simplement import datetimeobtenir le package complet avec tous les sous-modules, mais alors les appels de méthode ressembleraient à datetime.datetime.now()ou datetime.date.today(). En règle générale, il est préférable pour plusieurs raisons d'importer uniquement les composants dont vous avez besoin.
dannysauer
68
Utilisation:
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).
Les éléments ci-dessus sont utiles pour toute analyse de date, pas seulement maintenant ou aujourd'hui. Cela peut être utile pour toute analyse de date.
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')
Cela vous donnera le mois et l'année en cours au format entier. Si vous voulez qu'elles soient des chaînes, vous devez simplement supprimer la priorité "int" lors de l'affectation de valeurs aux variables curr_yearet curr_month.
date.today().strftime("%Y-%m")
?Réponses:
Utilisation:
from datetime import datetime today = datetime.today() datem = datetime(today.year, today.month, 1)
Je suppose que vous voulez le premier du mois.
la source
today
variable a déjà l'année et le mois en cours.from datetime import datetime
plutôt que simplementimport datetime
Essayez cette solution:
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
la source
.now()
plutôt que.today()
tel qu'il est utilisé dans d' autres réponses? Lanow()
fonction est plus courte, elle est plus couramment utilisée ... mais y a-t-il une raison d'utiliser l'une sur l'autre alors que tout ce que l'on veut savoir c'est de quelle année il s'agit?from datetime
-on et pourquoi en avez-vous besoin?date
sous - module (from datetime import date
) qui ne traite que des dates, letime
sous - module qui traite des heures, et ledatetime
sous - module malheureusement nommé qui fait les deux. Il y a aussitimedelta
ettzinfo
là-dedans. On pourrait simplementimport datetime
obtenir le package complet avec tous les sous-modules, mais alors les appels de méthode ressembleraient àdatetime.datetime.now()
oudatetime.date.today()
. En règle générale, il est préférable pour plusieurs raisons d'importer uniquement les composants dont vous avez besoin.Utilisation:
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).
Référence: 8.1.7. Comportement de strftime () et strptime ()
Référence: comportement de strftime () et strptime ()
Les éléments ci-dessus sont utiles pour toute analyse de date, pas seulement maintenant ou aujourd'hui. Cela peut être utile pour toute analyse de date.
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')
Etc...
la source
Vous pouvez écrire la réponse acceptée en une seule ligne en utilisant
date.replace
:datem = datetime.today().replace(day=1)
la source
Vous pouvez toujours utiliser une méthode de sous-chaîne:
import datetime; today = str(datetime.date.today()); curr_year = int(today[:4]); curr_month = int(today[5:7]);
Cela vous donnera le mois et l'année en cours au format entier. Si vous voulez qu'elles soient des chaînes, vous devez simplement supprimer la priorité "int" lors de l'affectation de valeurs aux variables
curr_year
etcurr_month
.la source
datetime.datetime.now().month
est mieux.Réponse tardive, mais vous pouvez également utiliser:
import time ym = time.strftime("%Y-%m")
la source
>>> from datetime import date >>> date.today().month 2 >>> date.today().year 2020 >>> date.today().day 13
la source