51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Dart
		
	
	
	
	
	
| import 'package:intl/intl.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();
 | |
|       return _formatDateTime(localDateTime, format: format);
 | |
|     } catch (e) {
 | |
|       return 'Invalid Date';
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   /// Public utility for formatting any DateTime.
 | |
|   static String formatDate(DateTime date, String format) {
 | |
|     try {
 | |
|       return DateFormat(format).format(date);
 | |
|     } catch (e) {
 | |
|       return 'Invalid Date';
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   /// Parses a date string using the given format.
 | |
|   static DateTime? parseDate(String dateString, String format) {
 | |
|     try {
 | |
|       return DateFormat(format).parse(dateString);
 | |
|     } catch (e) {
 | |
|       return null;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   /// Internal formatter with default format.
 | |
|   static String _formatDateTime(DateTime dateTime,
 | |
|       {String format = 'dd-MM-yyyy'}) {
 | |
|     return DateFormat(format).format(dateTime);
 | |
|   }
 | |
| }
 |