Tarih saat içinde cari yıl ve ayı bilmeliyim.
Bunu kullanıyorum:
datem = datetime.today().strftime("%Y-%m")
datem = datetime.strptime(datem, "%Y-%m")
Belki başka bir yolu var mı?
Tarih saat içinde cari yıl ve ayı bilmeliyim.
Bunu kullanıyorum:
datem = datetime.today().strftime("%Y-%m")
datem = datetime.strptime(datem, "%Y-%m")
Belki başka bir yolu var mı?
Yanıtlar:
Kullanım:
from datetime import datetime
today = datetime.today()
datem = datetime(today.year, today.month, 1)
Ayın ilkini istediğinizi varsayıyorum.
todaydeğişken zaten geçerli yıl ve ayı içeriyor .
from datetime import datetimebasitçe kullanmak yerine kullandığınızdan emin olunimport datetime
Bu çözümü deneyin:
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()göre bir avantajı var mı .today()? now()İşlevi daha yaygın kullanılır, daha kısadır ... ama hepsi bir olduğunu bilmek istiyor getirildiğinde birbirinin üzerine kullanmak için herhangi bir neden yoktur o hangi yıldayız?
from datetimeişe yarar ve neden buna ihtiyacın var?
datealt modül ( from datetime import date) time, zamanlarla ilgilenen datetimealt modül ve her ikisini de yapan ne yazık ki adlandırılmış alt modül. Da var timedeltave tzinfoiçeride. Biri import datetimetüm alt modülleri içeren tüm paketi alabilir, ancak daha sonra yöntem çağrıları datetime.datetime.now()veya gibi görünür datetime.date.today(). Tipik olarak, birkaç nedenden dolayı yalnızca ihtiyacınız olan bileşenleri içe aktarmak daha iyidir.
Kullanım:
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).
Referans: 8.1.7. strftime () ve strptime () Davranışı
Başvuru: strftime () ve strptime () Davranışı
Yukarıdaki şeyler, yalnızca şimdi veya bugün değil, herhangi bir tarih ayrıştırması için kullanışlıdır. Herhangi bir tarih ayrıştırması için yararlı olabilir.
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')
Ve bunun gibi...
Kabul edilen cevabı tek satırlık olarak yazabilirsiniz date.replace:
datem = datetime.today().replace(day=1)
Her zaman bir alt dize yöntemi kullanabilirsiniz:
import datetime;
today = str(datetime.date.today());
curr_year = int(today[:4]);
curr_month = int(today[5:7]);
Bu size mevcut ayı ve yılı tamsayı formatında alacaktır. Bunların dizge olmasını istiyorsanız, değişkenlere değer atarken "int" önceliğini kaldırmanız yeterlidir curr_yearve curr_month.
datetime.datetime.now().monthdaha iyi.
Geç cevap, ancak şunları da kullanabilirsiniz:
import time
ym = time.strftime("%Y-%m")
Soru, özellikle tarih saati kullanmayı ister.
Bu, yalnızca tarih saati kullanan bir yoldur:
year = datetime.now().year
month = datetime.now().month
date.today().strftime("%Y-%m")istiyorsun