У меня должен быть текущий год и месяц в 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")?