通常,您现在没有答案,但是也许我创建的我的课程也会有所帮助。对我来说,它可以解决我在Pyhon项目中曾经遇到的所有要求。
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()
-这会将您的字符串日期转换为具有您在pt 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})
与pt 7类似,但工作时间较长
GetDate("2019-08-08").time_delta_seconds({number_of_seconds})
类似于pt 7,但工作几秒钟
name 'timedelta' is not defined
,则表示您尚未定义timedelta
任何地方。Python通常会提供有关其错误消息的丰富信息。