timestampToDate function

String timestampToDate({
  1. required dynamic timestamp,
  2. bool fullDateTime = false,
  3. String separator = '',
  4. bool militaryTime = true,
})

Implementation

String timestampToDate({
  required dynamic timestamp,
  bool fullDateTime = false,
  String separator = '',
  bool militaryTime = true,
}) {
  if (tsUtDebug) {
    logDebug(
      'timestampToDate: $timestamp, fullDateTime: $fullDateTime, separator: $separator, militaryTime: $militaryTime',
    );
  }

  double timestampUnixEpoch = double.parse(timestamp.toString()) * 1000;

  DateTime date = DateTime.fromMillisecondsSinceEpoch(
    timestampUnixEpoch.toInt(),
  );
  if (tsUtDebug) {
    logDebug(
      'timestampToDate | timestampUnixEpoch: $timestampUnixEpoch, date: $date',
    );
  }

  int hours = date.hour;
  int minutes = date.minute;
  String ampm = hours >= 12 ? 'PM' : 'AM';
  String formattedTime =
      '${(hours == 0 ? 12 : (hours > 12 ? hours - 12 : hours)).toString()}'
      ':'
      '${(minutes < 10 ? '0' : '')}'
      '${minutes.toString()}'
      ' $ampm';

  if (fullDateTime) {
    if (separator.isNotEmpty) {
      if (!militaryTime) {
        return date.toIso8601String().split("T")[0] + separator + formattedTime;
      }
      return date.toIso8601String().split("T").join(separator).substring(0, 19);
    }
    if (!militaryTime) {
      return '${date.toIso8601String().split("T")[0]}T$formattedTime';
    }
    return date.toIso8601String();
  }
  return date.toIso8601String().split("T")[0];
}