Как отформатировать Дату?

из DateTime.now() должно получиться вот такой формат даты:

"2021-04-27T15:45:00+06:00"


Ответы (2 шт):

Автор решения: Maxgmer

Это формат ISO-8601. Получить подобную строку можно так:

DateTime.now().toIso8601String()
→ Ссылка
Автор решения: Spatz

Насколько я понял, то основная проблема состоит в добавлении временной зоны. При желании это можно сделать так:

void main() {
  final dt = DateTime.now();
  String tz;
  if (dt.isUtc) {
    tz =  'Z';
  } else {
    final tzo = dt.timeZoneOffset;
    final hours = tzo.inHours.abs().toString().padLeft(2, '0');
    final minutes = tzo.inMinutes.abs().remainder(60).toString().padLeft(2, '0');
    tz = '${tzo.isNegative ? '-' : '+'}$hours:$minutes';
  }
  print('${dt.toIso8601String().substring(0, 19)}${tz}');
  // 2021-04-27T18:26:06+03:00
}
→ Ссылка