From 24d3407b050d4d0be0ea20c3b24546aead217724 Mon Sep 17 00:00:00 2001 From: xiaoxixi Date: Wed, 29 Apr 2026 23:04:01 +0800 Subject: [PATCH] =?UTF-8?q?fix(session):=20=E6=89=80=E6=9C=89=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E6=98=BE=E7=A4=BA=E6=94=B9=E7=94=A8=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E6=97=B6=E5=8C=BA=E8=80=8C=E9=9D=9E=20UTC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - /info 和 /sessions 中的时间戳通过 DateTime::from_timestamp_millis 后 调用 with_timezone(&Local) 转换为本地时间 - dump_to_file 和 dump_as_markdown 导出的时间也改用本地时区 --- src/session/session.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/session/session.rs b/src/session/session.rs index 4842c70..da1f822 100644 --- a/src/session/session.rs +++ b/src/session/session.rs @@ -431,7 +431,7 @@ impl Session { let timestamp = if msg.timestamp > 0 { DateTime::from_timestamp_millis(msg.timestamp) - .map(|dt| dt.format("%Y-%m-%d %H:%M:%S").to_string()) + .map(|dt| dt.with_timezone(&Local).format("%Y-%m-%d %H:%M:%S").to_string()) .unwrap_or_default() } else { String::new() @@ -503,7 +503,7 @@ impl Session { let timestamp = if msg.timestamp > 0 { DateTime::from_timestamp_millis(msg.timestamp) - .map(|dt| dt.format("%Y-%m-%d %H:%M:%S").to_string()) + .map(|dt| dt.with_timezone(&Local).format("%Y-%m-%d %H:%M:%S").to_string()) .unwrap_or_default() } else { String::new() @@ -774,10 +774,10 @@ impl SessionManager { let title = &session_guard.title; let model_name = &session_guard.provider_config.name; let created_at = chrono::DateTime::from_timestamp_millis(session_guard.created_at) - .map(|dt| dt.format("%Y-%m-%d %H:%M:%S").to_string()) + .map(|dt| dt.with_timezone(&chrono::Local).format("%Y-%m-%d %H:%M:%S").to_string()) .unwrap_or_default(); let last_active_at = chrono::DateTime::from_timestamp_millis(session_guard.last_active_at) - .map(|dt| dt.format("%Y-%m-%d %H:%M:%S").to_string()) + .map(|dt| dt.with_timezone(&chrono::Local).format("%Y-%m-%d %H:%M:%S").to_string()) .unwrap_or_default(); Ok((None, format!( "对话标题: {}\nSession ID: {}\n模型: {}\n用户消息: {} / 总消息: {}\n创建时间: {}\n最后活跃: {}", @@ -814,7 +814,7 @@ impl SessionManager { } else { "" }; - format!("- {} ({}){} — {}", d.session_id.dialog_id, d.title, current, chrono::DateTime::from_timestamp_millis(d.last_active_at).map(|dt| dt.format("%m-%d %H:%M").to_string()).unwrap_or_default()) + format!("- {} ({}){} — {}", d.session_id.dialog_id, d.title, current, chrono::DateTime::from_timestamp_millis(d.last_active_at).map(|dt| dt.with_timezone(&chrono::Local).format("%m-%d %H:%M").to_string()).unwrap_or_default()) }).collect(); Ok((None, format!("最近对话:\n{}", lines.join("\n")))) }