import 'package:intl/intl.dart'; import 'package:marco/helpers/services/app_logger.dart'; class DateTimeUtils { /// Converts a UTC datetime string to local time and formats it. static String convertUtcToLocal(String utcTimeString, {String format = 'dd-MM-yyyy'}) { try { final parsed = DateTime.parse(utcTimeString); final utcDateTime = DateTime.utc( parsed.year, parsed.month, parsed.day, parsed.hour, parsed.minute, parsed.second, parsed.millisecond, parsed.microsecond, ); final localDateTime = utcDateTime.toLocal(); final formatted = _formatDateTime(localDateTime, format: format); return formatted; } catch (e, stackTrace) { logSafe('DateTime conversion failed: $e', error: e, stackTrace: stackTrace); return 'Invalid Date'; } } /// Public utility for formatting any DateTime. static String formatDate(DateTime date, String format) { try { return DateFormat(format).format(date); } catch (e, stackTrace) { logSafe('formatDate failed: $e', error: e, stackTrace: stackTrace); return 'Invalid Date'; } } /// Internal formatter with default format. static String _formatDateTime(DateTime dateTime, {String format = 'dd-MM-yyyy'}) { return DateFormat(format).format(dateTime); } }