Как форматировать DateTime в Flutter?

В Flutter для форматирования объекта DateTime можно использовать пакет intl.

Шаги для форматирования:

  1. Добавьте пакет intl в файл pubspec.yaml:

    dependencies:
      intl: ^0.18.0
    
  2. Импортируйте пакет:
    import 'package:intl/intl.dart';
    
  3. Форматирование DateTime:
    DateTime now = DateTime.now();
    String formattedDate = DateFormat('yyyy-MM-dd').format(now); // 2024-10-04
    String formattedTime = DateFormat('HH:mm:ss').format(now);   // 14:35:20
    

В пакете intl для Flutter форматные строки позволяют указать, как именно будет выглядеть дата или время. Вот подробнее про ключевые символы:

  • Год:

    • y: Например, 2024 или 24.
    • yy: Двузначный формат года, например, 24.
    • yyyy: Полный год, например, 2024.
  • Месяц:

    • M: Однозначные и двузначные месяцы (1-12).
    • MM: Всегда двузначный формат (01-12).
    • MMM: Сокращённое название месяца, например, Jan.
    • MMMM: Полное название месяца, например, January.
  • День:

    • d: Однозначные и двузначные дни (1-31).
    • dd: Двузначный день (01-31).
  • Часы:

    • H: Часы в 24-часовом формате (0-23).
    • HH: Двузначные часы (00-23).
    • h: Часы в 12-часовом формате (1-12).
    • hh: Двузначные часы в 12-часовом формате (01-12).
  • Минуты и секунды:

    • m: Минуты (0-59).
    • mm: Двузначные минуты (00-59).
    • s: Секунды (0-59).
    • ss: Двузначные секунды (00-59).
  • AM/PM:

    • a: Добавляет AM или PM, например, 2:30 PM.

Пример:

String formatted = DateFormat('dd/MM/yyyy HH:mm').format(now); 
// Результат: 04/10/2024 14:35