39 lines
1.2 KiB
Dart
39 lines
1.2 KiB
Dart
import 'package:intl/intl.dart';
|
|
import 'package:marco/helpers/services/app_logger.dart';
|
|
|
|
class DateTimeUtils {
|
|
static String convertUtcToLocal(String utcTimeString, {String format = 'dd-MM-yyyy'}) {
|
|
try {
|
|
logSafe('convertUtcToLocal: input="$utcTimeString", format="$format"');
|
|
|
|
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,
|
|
);
|
|
logSafe('Parsed (assumed UTC): $utcDateTime');
|
|
|
|
final localDateTime = utcDateTime.toLocal();
|
|
logSafe('Converted to Local: $localDateTime');
|
|
|
|
final formatted = _formatDateTime(localDateTime, format: format);
|
|
logSafe('Formatted Local Time: $formatted');
|
|
|
|
return formatted;
|
|
} catch (e, stackTrace) {
|
|
logSafe('DateTime conversion failed: $e', error: e, stackTrace: stackTrace);
|
|
return 'Invalid Date';
|
|
}
|
|
}
|
|
|
|
static String _formatDateTime(DateTime dateTime, {String format = 'dd-MM-yyyy'}) {
|
|
return DateFormat(format).format(dateTime);
|
|
}
|
|
}
|