Secara umum Anda belum mendapat jawaban sekarang, tetapi mungkin kelas yang saya buat juga akan membantu. Bagi saya itu menyelesaikan semua kebutuhan saya yang pernah saya miliki dalam proyek Pyhon saya.
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)
Bagaimana cara menggunakannya
self.tz = pytz.timezone("Europe/Warsaw")
- di sini Anda menentukan Zona Waktu yang ingin Anda gunakan dalam proyek
GetDate("2019-08-08").current()
- ini akan mengonversi tanggal string Anda menjadi objek yang sadar waktu dengan zona waktu yang Anda tetapkan dalam pt 1. Format string default adalah format="%Y-%m-%d"
tetapi jangan ragu untuk mengubahnya. (mis. GetDate("2019-08-08 08:45", format="%Y-%m-%d %H:%M").current()
)
GetDate("2019-08-08").get_month_first_day()
mengembalikan tanggal yang diberikan (string atau objek) bulan hari pertama
GetDate("2019-08-08").get_month_last_day()
mengembalikan tanggal yang diberikan bulan hari terakhir
GetDate("2019-08-08").minimum_time()
mengembalikan tanggal yang diberikan mulai hari
GetDate("2019-08-08").maximum_time()
mengembalikan tanggal akhir hari yang diberikan
GetDate("2019-08-08").time_delta_days({number_of_days})
mengembalikan tanggal yang diberikan + tambahkan {jumlah hari} (Anda juga dapat menghubungi: GetDate(timezone.now()).time_delta_days(-1)
untuk kemarin)
GetDate("2019-08-08").time_delta_haours({number_of_hours})
mirip dengan 7 tetapi bekerja pada jam
GetDate("2019-08-08").time_delta_seconds({number_of_seconds})
mirip dengan pt 7 tetapi bekerja pada detik
name 'timedelta' is not defined
, itu berarti Anda belum menentukan ditimedelta
mana pun. Python biasanya cukup informatif tentang pesan kesalahannya.