Muszę mieć bieżący rok i miesiąc w datetime.
Używam tego:
datem = datetime.today().strftime("%Y-%m")
datem = datetime.strptime(datem, "%Y-%m")
Czy jest może inny sposób?
Muszę mieć bieżący rok i miesiąc w datetime.
Używam tego:
datem = datetime.today().strftime("%Y-%m")
datem = datetime.strptime(datem, "%Y-%m")
Czy jest może inny sposób?
Odpowiedzi:
Posługiwać się:
from datetime import datetime
today = datetime.today()
datem = datetime(today.year, today.month, 1)
Zakładam, że chcesz pierwszego dnia miesiąca.
today
zmienna ma już bieżący rok i miesiąc.
from datetime import datetime
zamiast prostegoimport datetime
Wypróbuj to rozwiązanie:
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()
a nie .today()
w przypadku innych odpowiedzi? now()
Funkcja jest krótszy, to powszechnie stosowane ... ale czy istnieje jakikolwiek powód, aby użyć jednej nad drugą, gdy wszystko chce wiedzieć, co roku to jest?
from datetime
i dlaczego tego potrzebujesz?
date
submoduł ( from datetime import date
), który zajmuje się tylko datami, time
podmoduł, który zajmuje się czasami, oraz datetime
podmoduł o niestety nazwie, który robi jedno i drugie. Jest też timedelta
i tzinfo
tam. Można by po prostu import datetime
pobrać cały pakiet ze wszystkimi podmodułami, ale wtedy wywołania metod wyglądałyby tak, jak datetime.datetime.now()
lub datetime.date.today()
. Zwykle z kilku powodów ładniej jest importować tylko potrzebne komponenty.
Posługiwać się:
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).
Odniesienie: 8.1.7. Zachowanie strftime () i strptime ()
Odniesienie: zachowanie strftime () i strptime ()
Powyższe rzeczy są przydatne przy każdym analizowaniu dat, nie tylko teraz i dzisiaj. Może być przydatna w przypadku dowolnej analizy dat.
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')
I tak dalej...
Możesz napisać zaakceptowaną odpowiedź jako jednowierszową za pomocą date.replace
:
datem = datetime.today().replace(day=1)
Zawsze możesz użyć metody podciągów:
import datetime;
today = str(datetime.date.today());
curr_year = int(today[:4]);
curr_month = int(today[5:7]);
Spowoduje to wyświetlenie bieżącego miesiąca i roku w formacie liczb całkowitych. Jeśli chcesz, aby były to łańcuchy, musisz po prostu usunąć pierwszeństwo „int” podczas przypisywania wartości do zmiennych curr_year
i curr_month
.
datetime.datetime.now().month
jest lepiej.
Późna odpowiedź, ale możesz też użyć:
import time
ym = time.strftime("%Y-%m")
date.today().strftime("%Y-%m")
?