일반적으로 당신은 지금 대답을 얻었지만 어쩌면 내가 만든 수업이 도움이 될 것입니다. 나를 위해 그것은 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
아무 곳도 정의하지 않았다는 의미입니다 . 파이썬은 일반적으로 오류 메시지에 대해 매우 유익합니다.