a83001de0d
- 新增系统语言/时区读取工具函数 - SessionStore 扩展支持时区存储 - 启动流程自动检测并保存系统语言/时区 - 注册时传递语言/时区到后端 - 登录后从服务器同步语言/时区
31 lines
1.1 KiB
Dart
31 lines
1.1 KiB
Dart
import 'package:flutter/widgets.dart';
|
|
|
|
import '../../l10n/app_localizations.dart';
|
|
|
|
String formatRelativeTime(BuildContext context, DateTime dateTime) {
|
|
final l10n = AppLocalizations.of(context)!;
|
|
final diff = DateTime.now().difference(dateTime);
|
|
if (diff.inMinutes < 1) return l10n.timeJustNow;
|
|
if (diff.inHours < 1) return l10n.timeMinutesAgo(diff.inMinutes);
|
|
if (diff.inDays < 1) return l10n.timeHoursAgo(diff.inHours);
|
|
if (diff.inDays < 30) return l10n.timeDaysAgo(diff.inDays);
|
|
return '${dateTime.month}/${dateTime.day}';
|
|
}
|
|
|
|
String formatCompactLocalDateTime(String isoString) {
|
|
final dateTime = DateTime.parse(isoString).toLocal();
|
|
final now = DateTime.now();
|
|
final timeText =
|
|
'${dateTime.hour.toString().padLeft(2, '0')}:${dateTime.minute.toString().padLeft(2, '0')}';
|
|
|
|
if (now.year == dateTime.year &&
|
|
now.month == dateTime.month &&
|
|
now.day == dateTime.day) {
|
|
return timeText;
|
|
}
|
|
|
|
final dateText =
|
|
'${dateTime.year}-${dateTime.month.toString().padLeft(2, '0')}-${dateTime.day.toString().padLeft(2, '0')}';
|
|
return '$dateText $timeText';
|
|
}
|