आम तौर पर अब आप एक जवाब भूल गए हैं, लेकिन शायद मेरी बनाई हुई कक्षा भी सहायक होगी। मेरे लिए यह मेरी सभी आवश्यकताओं को हल करता है जो मैंने कभी अपने पायोन परियोजनाओं में की थी।
class GetDate:
def __init__(self, date, format="%Y-%m-%d"):
self.tz = pytz.timezone("Europe/Warsaw")
if isinstance(date, str):
date = datetime.strptime(date, format)
self.date = date.astimezone(self.tz)
def time_delta_days(self, days):
return self.date + timedelta(days=days)
def time_delta_hours(self, hours):
return self.date + timedelta(hours=hours)
def time_delta_seconds(self, seconds):
return self.date + timedelta(seconds=seconds)
def get_minimum_time(self):
return datetime.combine(self.date, time.min).astimezone(self.tz)
def get_maximum_time(self):
return datetime.combine(self.date, time.max).astimezone(self.tz)
def get_month_first_day(self):
return datetime(self.date.year, self.date.month, 1).astimezone(self.tz)
def current(self):
return self.date
def get_month_last_day(self):
lastDay = calendar.monthrange(self.date.year, self.date.month)[1]
date = datetime(self.date.year, self.date.month, lastDay)
return datetime.combine(date, time.max).astimezone(self.tz)
इसका इस्तेमाल कैसे करें
self.tz = pytz.timezone("Europe/Warsaw")
- यहां आप प्रोजेक्ट में जिस टाइम जोन का इस्तेमाल करना चाहते हैं, उसे परिभाषित करते हैं
GetDate("2019-08-08").current()
- यह आपकी स्ट्रिंग तिथि को समय-समय पर ज्ञात वस्तु के साथ बदल देगा, जिसे आपने पीटी 1 में परिभाषित किया है। डिफ़ॉल्ट स्ट्रिंग प्रारूप है, format="%Y-%m-%d"
लेकिन इसे बदलने के लिए स्वतंत्र महसूस करें। (उदाहरण। GetDate("2019-08-08 08:45", format="%Y-%m-%d %H:%M").current()
)
GetDate("2019-08-08").get_month_first_day()
दिए गए दिनांक (स्ट्रिंग या ऑब्जेक्ट) महीने पहले दिन
GetDate("2019-08-08").get_month_last_day()
पिछले महीने दिया गया रिटर्न
GetDate("2019-08-08").minimum_time()
दिए गए दिन की शुरुआत रिटर्न
GetDate("2019-08-08").maximum_time()
दिन के अंत में दिया गया रिटर्न
GetDate("2019-08-08").time_delta_days({number_of_days})
दी गई तारीखों को वापस जोड़ें + दिन की संख्या} (आप कॉल भी कर सकते हैं: GetDate(timezone.now()).time_delta_days(-1)
कल के लिए)
GetDate("2019-08-08").time_delta_haours({number_of_hours})
पीटी 7 के समान लेकिन घंटे पर काम करना
GetDate("2019-08-08").time_delta_seconds({number_of_seconds})
पीटी 7 के समान लेकिन सेकंड पर काम करना
name 'timedelta' is not defined
, तो इसका मतलब है कि आपनेtimedelta
कहीं भी परिभाषित नहीं किया है। पायथन आमतौर पर अपने त्रुटि संदेशों के बारे में बहुत जानकारीपूर्ण है।