import 'package:intl/intl.dart'; abstract final class AppDateUtils { static final _dateFormat = DateFormat('yyyy-MM-dd'); static final _dateTimeFormat = DateFormat('yyyy-MM-dd HH:mm:ss'); static final _timeFormat = DateFormat('HH:mm'); static final _koreanDateFormat = DateFormat('yyyy년 MM월 dd일'); static String formatDate(DateTime date) => _dateFormat.format(date); static String formatDateTime(DateTime date) => _dateTimeFormat.format(date); static String formatTime(DateTime date) => _timeFormat.format(date); static String formatKoreanDate(DateTime date) => _koreanDateFormat.format(date); static DateTime? tryParse(String? dateString) { if (dateString == null) return null; try { return DateTime.parse(dateString); } catch (_) { return null; } } static String timeAgo(DateTime date) { final now = DateTime.now(); final diff = now.difference(date); if (diff.inDays > 365) { return '${diff.inDays ~/ 365}년 전'; } else if (diff.inDays > 30) { return '${diff.inDays ~/ 30}개월 전'; } else if (diff.inDays > 0) { return '${diff.inDays}일 전'; } else if (diff.inHours > 0) { return '${diff.inHours}시간 전'; } else if (diff.inMinutes > 0) { return '${diff.inMinutes}분 전'; } else { return '방금 전'; } } }