У меня должен быть текущий год и месяц в datetime.
Я использую это:
datem = datetime.today().strftime("%Y-%m")
datem = datetime.strptime(datem, "%Y-%m")
А может быть другой способ?
У меня должен быть текущий год и месяц в datetime.
Я использую это:
datem = datetime.today().strftime("%Y-%m")
datem = datetime.strptime(datem, "%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
лучше.
Поздний ответ, но вы также можете использовать:
import time
ym = time.strftime("%Y-%m")
date.today().strftime("%Y-%m")
?