mirror of
https://github.com/fastapi-practices/fastapi_best_architecture.git
synced 2025-08-15 03:52:54 +08:00

* define the basic architecture * Update script and deployment file locations * Update the route registration * Fix CI download dependencies * Updated ruff to 0.3.3 * Update app subdirectory naming * Update the model import * fix pre-commit pdm lock * Update the service directory naming * Add CRUD method documents * Fix the issue of circular import * Update the README document * Update the SQL statement for create tables * Update docker scripts and documentation * Fix docker scripts * Update the backend README.md * Add the security folder and move the redis client * Update the configuration item * Fix environment configuration reads * Update the default configuration * Updated README description * Updated the user registration API * Fix test cases * Update the celery configuration * Update and fix celery configuration * Updated the celery structure * Update celery tasks and api * Add celery flower * Update the import style * Update contributors
43 lines
932 B
Python
43 lines
932 B
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
import zoneinfo
|
|
|
|
from datetime import datetime
|
|
|
|
from backend.core.conf import settings
|
|
|
|
|
|
class TimeZone:
|
|
def __init__(self, tz: str = settings.DATETIME_TIMEZONE):
|
|
self.tz_info = zoneinfo.ZoneInfo(tz)
|
|
|
|
def now(self) -> datetime:
|
|
"""
|
|
获取时区时间
|
|
|
|
:return:
|
|
"""
|
|
return datetime.now(self.tz_info)
|
|
|
|
def f_datetime(self, dt: datetime) -> datetime:
|
|
"""
|
|
datetime 时间转时区时间
|
|
|
|
:param dt:
|
|
:return:
|
|
"""
|
|
return dt.astimezone(self.tz_info)
|
|
|
|
def f_str(self, date_str: str, format_str: str = settings.DATETIME_FORMAT) -> datetime:
|
|
"""
|
|
时间字符串转时区时间
|
|
|
|
:param date_str:
|
|
:param format_str:
|
|
:return:
|
|
"""
|
|
return datetime.strptime(date_str, format_str).replace(tzinfo=self.tz_info)
|
|
|
|
|
|
timezone = TimeZone()
|