81 lines
2.6 KiB
Python
81 lines
2.6 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
測試時區修正是否正確
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
from datetime import datetime
|
|
from app import create_app
|
|
from app.models.job import TranslationJob
|
|
from app.models.user import User
|
|
from app.utils.timezone import format_taiwan_time, now_taiwan, now_utc
|
|
|
|
def test_timezone_conversion():
|
|
"""測試時區轉換功能"""
|
|
|
|
print("=" * 60)
|
|
print("時區轉換測試")
|
|
print("=" * 60)
|
|
|
|
# 1. 測試當前時間
|
|
print("\n1. 當前時間測試:")
|
|
print(f" 系統本地時間: {datetime.now()}")
|
|
print(f" UTC 時間 (舊): {datetime.utcnow()}")
|
|
print(f" UTC 時間 (新): {now_utc()}")
|
|
print(f" 台灣時間: {now_taiwan()}")
|
|
|
|
# 2. 測試時間格式化
|
|
print("\n2. 時間格式化測試:")
|
|
utc_time = datetime.utcnow()
|
|
print(f" UTC 時間原始: {utc_time}")
|
|
print(f" 轉換為台灣時間: {format_taiwan_time(utc_time)}")
|
|
|
|
# 3. 測試模型的 to_dict 方法
|
|
print("\n3. 測試資料模型時間輸出:")
|
|
|
|
app = create_app()
|
|
|
|
with app.app_context():
|
|
# 創建測試資料
|
|
from app import db
|
|
|
|
# 查詢一筆任務記錄
|
|
job = TranslationJob.query.first()
|
|
if job:
|
|
print(f"\n 任務 UUID: {job.job_uuid}")
|
|
print(f" 資料庫中的 created_at (UTC): {job.created_at}")
|
|
|
|
job_dict = job.to_dict()
|
|
print(f" to_dict 輸出的 created_at (台灣時間): {job_dict['created_at']}")
|
|
|
|
if job.completed_at:
|
|
print(f" 資料庫中的 completed_at (UTC): {job.completed_at}")
|
|
print(f" to_dict 輸出的 completed_at (台灣時間): {job_dict['completed_at']}")
|
|
else:
|
|
print(" 沒有找到任務記錄")
|
|
|
|
# 查詢使用者記錄
|
|
user = User.query.first()
|
|
if user:
|
|
print(f"\n 使用者: {user.username}")
|
|
print(f" 資料庫中的 created_at (UTC): {user.created_at}")
|
|
|
|
user_dict = user.to_dict()
|
|
print(f" to_dict 輸出的 created_at (台灣時間): {user_dict['created_at']}")
|
|
|
|
if user.last_login:
|
|
print(f" 資料庫中的 last_login (UTC): {user.last_login}")
|
|
print(f" to_dict 輸出的 last_login (台灣時間): {user_dict['last_login']}")
|
|
else:
|
|
print(" 沒有找到使用者記錄")
|
|
|
|
print("\n" + "=" * 60)
|
|
print("測試完成!")
|
|
print("=" * 60)
|
|
|
|
if __name__ == "__main__":
|
|
test_timezone_conversion() |