init: 项目初始提交 - NeoZQYY Monorepo 完整代码
This commit is contained in:
25
packages/shared/src/neozqyy_shared/datetime_utils.py
Normal file
25
packages/shared/src/neozqyy_shared/datetime_utils.py
Normal file
@@ -0,0 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""时区转换与日期范围工具。
|
||||
|
||||
默认时区:Asia/Shanghai(UTC+8),与业务数据库 timestamptz 对齐。
|
||||
"""
|
||||
from datetime import datetime, date, timedelta
|
||||
from dateutil import tz
|
||||
|
||||
SHANGHAI_TZ = tz.gettz("Asia/Shanghai")
|
||||
|
||||
|
||||
def now_shanghai() -> datetime:
|
||||
"""获取上海时区当前时间。"""
|
||||
return datetime.now(SHANGHAI_TZ)
|
||||
|
||||
|
||||
def date_range(start: date, end: date) -> list[date]:
|
||||
"""生成日期范围列表(含首尾)。
|
||||
|
||||
start > end 时返回空列表。
|
||||
"""
|
||||
if start > end:
|
||||
return []
|
||||
days = (end - start).days + 1
|
||||
return [start + timedelta(days=i) for i in range(days)]
|
||||
Reference in New Issue
Block a user