timezone.py 924 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. import zoneinfo
  4. from datetime import datetime
  5. from core.conf import settings
  6. class TimeZone:
  7. def __init__(self, tz: str = settings.DATETIME_TIMEZONE):
  8. self.tz_info = zoneinfo.ZoneInfo(tz)
  9. def now(self) -> datetime:
  10. """
  11. 获取时区时间
  12. :return:
  13. """
  14. return datetime.now(self.tz_info)
  15. def f_datetime(self, dt: datetime) -> datetime:
  16. """
  17. datetime 时间转时区时间
  18. :param dt:
  19. :return:
  20. """
  21. return dt.astimezone(self.tz_info)
  22. def f_str(self, date_str: str, format_str: str = settings.DATETIME_FORMAT) -> datetime:
  23. """
  24. 时间字符串转时区时间
  25. :param date_str:
  26. :param format_str:
  27. :return:
  28. """
  29. return datetime.strptime(date_str, format_str).replace(tzinfo=self.tz_info)
  30. timezone = TimeZone()