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:
parent
1621b75a47
commit
a7dd926877
|
|
@ -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');
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue