formatToken method

String? formatToken(
  1. Moment moment,
  2. String token
)

Resolves a single format token into its string value for the given moment.

This powers the format method. You generally won't call it directly, but it's public so you can extend or override token behaviour.

Implementation

String? formatToken(Moment moment, String token) {
  switch (token) {
    case ddd:
      return weekDayNames[moment.weekday]!.substring(0, 3);
    case dddd:
      return weekDayNames[moment.weekday];
    case D:
      return moment.date.toString();
    case Do:
      return '${moment.date}${_getOrdinal(moment.date!)}';
    case DD:
      return moment.date.toString().padLeft(2, '0');
    case M:
      return moment.month.toString();
    case Mo:
      return '${moment.month}${_getOrdinal(moment.month)}';
    case MM:
      return moment.month.toString().padLeft(2, '0');
    case MMM:
      return monthNames[moment.month]!.substring(0, 3);
    case mmmm:
      return monthNames[moment.month];
    case yy:
      return moment.year.toString().substring(2);
    case yyyy:
      return moment.year.toString();
    case h:
      int hour12 = moment.hour! % 12;
      return hour12 == 0 ? '12' : hour12.toString();
    case hh:
      int hour12 = moment.hour! % 12;
      return (hour12 == 0 ? 12 : hour12).toString().padLeft(2, '0');
    case H:
      return moment.hour.toString();
    case HH:
      return moment.hour.toString().padLeft(2, '0');
    case m:
      return moment.minute.toString();
    case mm:
      return moment.minute.toString().padLeft(2, '0');
    case s:
      return moment.second.toString();
    case ss:
      return moment.second.toString().padLeft(2, '0');
    case A:
      return moment.clockPhase;
    case a:
      return moment.clockPhase.toLowerCase();
    case t:
      return '${moment.hour}:${moment.minute}:${moment.second}';
    case dateNumeric:
      return '${moment.date.toString().padLeft(2, '0')}/${moment.month.toString().padLeft(2, '0')}/$year';
    default:
      return token;
  }
}