import 'package:diameter/models/settings.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; final DateTime dummyDate = DateTime(2000); class DateTimeUtils { static String displayDateTime(DateTime? date, {String fallback = ''}) { if (date == null) { return fallback; } DateTime localDate = date.toLocal(); final DateFormat formatter = DateFormat('${Settings.get().dateFormat} ${Settings.get().timeFormat}'); return formatter.format(localDate); } static String displayDate(DateTime? date, {String fallback = ''}) { if (date == null) { return fallback; } DateTime localDate = date.toLocal(); final DateFormat formatter = DateFormat(Settings.get().longDateFormat ?? Settings.get().dateFormat); return formatter.format(localDate); } static String displayTime(DateTime? date, {String fallback = '', bool? longFormat}) { if (date == null) { return fallback; } DateTime localDate = date.toLocal(); final DateFormat formatter = DateFormat(longFormat == true ? Settings.get().longTimeFormat ?? Settings.get().timeFormat : Settings.get().timeFormat); return formatter.format(localDate); } static String displayTimeOfDay(TimeOfDay? time, {String fallback = '', bool? longFormat}) { if (time == null) { return fallback; } final DateFormat formatter = DateFormat(longFormat == true ? Settings.get().longTimeFormat ?? Settings.get().timeFormat : Settings.get().timeFormat); return formatter.format(convertTimeOfDayToDateTime(time)); } static DateTime convertTimeOfDayToDateTime(TimeOfDay time) { return DateTime( dummyDate.year, dummyDate.month, dummyDate.day, time.hour, time.minute); } }