@ user3778327: в todayпеременной уже есть текущий год и месяц.
jfs
18
Для этого решения используйте, from datetime import datetimeа не простоimport datetime
jpobst 05
@jpobst Я использую Python 3.8.1 и datetime-4.3 zope.interface-4.7.1, и приведенный выше код (с import datetime ) мне подходит . Если я пишу from datetime import datetime , мне
Работает, спасибо! Есть ли преимущество перед тем .now(), .today()что используется в других ответах? now()Функция короче, она чаще используется ... , но нет никаких оснований , чтобы использовать один над другим , когда все один хочет знать, в каком году это?
Люк
1
@hashlash Спасибо! Чтобы спасти других, нажмите: нет, не совсем
Люк
что делает from datetimeи зачем вам это нужно?
Кадоис,
1
@Cadoiz - Пакет datetime имеет несколько подмодулей - dateподмодуль ( from datetime import date), который работает только с датами, timeподмодуль, который имеет дело со временем, и подмодуль с неудачным названием, datetimeкоторый выполняет и то, и другое. Там же timedeltaи tzinfoтам. Можно было просто import datetimeполучить весь пакет со всеми подмодулями, но тогда вызовы методов выглядели бы как datetime.datetime.now()или datetime.date.today(). Как правило, по нескольким причинам лучше импортировать только те компоненты, которые вам нужны.
даннысауэр
68
Использование:
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).
Это даст вам текущий месяц и год в целочисленном формате. Если вы хотите, чтобы они были строками, вам просто нужно удалить приоритет "int" при присвоении значений переменным curr_yearи curr_month.
date.today().strftime("%Y-%m")
?Ответы:
Использование:
from datetime import datetime today = datetime.today() datem = datetime(today.year, today.month, 1)
Я предполагаю, что вы хотите первого числа месяца.
источник
today
переменной уже есть текущий год и месяц.from datetime import datetime
а не простоimport datetime
Попробуйте это решение:
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
источник
.now()
,.today()
что используется в других ответах?now()
Функция короче, она чаще используется ... , но нет никаких оснований , чтобы использовать один над другим , когда все один хочет знать, в каком году это?from datetime
и зачем вам это нужно?date
подмодуль (from datetime import date
), который работает только с датами,time
подмодуль, который имеет дело со временем, и подмодуль с неудачным названием,datetime
который выполняет и то, и другое. Там жеtimedelta
иtzinfo
там. Можно было простоimport datetime
получить весь пакет со всеми подмодулями, но тогда вызовы методов выглядели бы какdatetime.datetime.now()
илиdatetime.date.today()
. Как правило, по нескольким причинам лучше импортировать только те компоненты, которые вам нужны.Использование:
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).
Ссылка: 8.1.7. Поведение strftime () и strptime ()
Ссылка: поведение strftime () и strptime ()
Вышеупомянутые вещи полезны для любого анализа даты, не только сейчас или сегодня. Может пригодиться при разборе любой даты.
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')
И так далее...
источник
Вы можете написать принятый ответ как однострочный, используя
date.replace
:datem = datetime.today().replace(day=1)
источник
Вы всегда можете использовать метод подстроки:
import datetime; today = str(datetime.date.today()); curr_year = int(today[:4]); curr_month = int(today[5:7]);
Это даст вам текущий месяц и год в целочисленном формате. Если вы хотите, чтобы они были строками, вам просто нужно удалить приоритет "int" при присвоении значений переменным
curr_year
иcurr_month
.источник
datetime.datetime.now().month
лучше.>>> from datetime import date >>> date.today().month 2 >>> date.today().year 2020 >>> date.today().day 13
источник
Поздний ответ, но вы также можете использовать:
import time ym = time.strftime("%Y-%m")
источник