fix(mining-app): 修复分配记录 distributionMinute 时间仍显示UTC的问题

上次修复使用了 DateTime.parse(t).toLocal(),但 distributionMinute
字符串不带 Z 后缀(如 "2026-03-03 05:09:00"),Dart 的 DateTime.parse
在无时区标识时默认当作本地时间处理,导致 .toLocal() 无效。

修复:解析前追加 Z 后缀,强制标记为 UTC,使 .toLocal() 正确转换
为北京时间(UTC+8)。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-03-02 21:26:47 -08:00
parent 1621b75a47
commit a7dd926877
1 changed files with 4 additions and 1 deletions

View File

@ -298,7 +298,10 @@ class _MiningRecordsListPageState extends ConsumerState<MiningRecordsListPage> {
// //
final t = time.replaceAll('T', ' ').split('.').first; // final t = time.replaceAll('T', ' ').split('.').first; //
try { try {
final dt = DateTime.parse(t).toLocal(); // distributionMinute UTC Z ,
// DateTime.parse Z , Z UTC
final utcStr = t.endsWith('Z') ? t : '${t}Z';
final dt = DateTime.parse(utcStr).toLocal();
final y = (dt.year % 100).toString().padLeft(2, '0'); final y = (dt.year % 100).toString().padLeft(2, '0');
final m = dt.month.toString().padLeft(2, '0'); final m = dt.month.toString().padLeft(2, '0');
final d = dt.day.toString().padLeft(2, '0'); final d = dt.day.toString().padLeft(2, '0');