fix: enforce Beijing Time (UTC+8) globally by replacing datetime.utcnow

This commit is contained in:
DXC
2026-03-20 15:23:20 +08:00
parent d7df1dea57
commit b08bbba718
3 changed files with 7 additions and 8 deletions

View File

@ -1,7 +1,7 @@
# 文件路径: app/api/v1/inbound/base.py
from flask import Blueprint, request, jsonify, send_file, g, current_app
from app.extensions import db
from app.extensions import db, beijing_time
from app.services.inbound.base_service import MaterialBaseService
from app.utils.decorators import login_required, permission_required, audit_log
from app.models.base import MaterialBase, MaterialWarningSetting
@ -185,9 +185,8 @@ def export_data():
file_stream = MaterialBaseService.export_excel(filters, user_permissions)
# 生成文件名:库存统计+年月日+时分秒 (北京时间 UTC+8)
# 简单处理UTC时间 + 8小时
beijing_time = datetime.datetime.utcnow() + datetime.timedelta(hours=8)
filename = f"库存统计_{beijing_time.strftime('%Y%m%d_%H%M%S')}.xlsx"
bj_time = beijing_time()
filename = f"库存统计_{bj_time.strftime('%Y%m%d_%H%M%S')}.xlsx"
# 发送文件
# 注意download_name 仅在较新 Flask 版本有效,旧版本可能需要手动 header

View File

@ -2,7 +2,7 @@
from flask import Blueprint, request, jsonify
from flask_jwt_extended import jwt_required, get_jwt_identity, get_jwt
from app.utils.decorators import permission_required
from app.extensions import db
from app.extensions import db, beijing_time
from app.models.stock.adjustment import StockAdjustment
from app.models.base import MaterialBase
from app.models.inbound.buy import StockBuy
@ -17,7 +17,7 @@ adjustment_bp = Blueprint('adjustment', __name__, url_prefix='/stock/adjustment'
def get_beijing_time():
"""获取北京时间 (UTC+8)"""
return datetime.utcnow() + timedelta(hours=8)
return beijing_time()
def generate_order_no():

View File

@ -16,8 +16,8 @@ redis_client = None
def beijing_time():
"""获取北京时间 (UTC+8)"""
return datetime.now(timezone(timedelta(hours=8)))
"""获取北京时间 (UTC+8),剥离时区信息以兼容数据库 naive DateTime 字段"""
return datetime.now(timezone(timedelta(hours=8))).replace(tzinfo=None)
# 2. 定义初始化函数 (供工厂函数 create_app 调用)