Отображение Flutter DateTime: несколько методов для отображения текущей даты и времени

Во Flutter отображение текущей даты и времени является общим требованием для многих приложений. Хотите ли вы показать его в определенном формате, с часовыми поясами или локализовано, Flutter предоставляет различные методы для выполнения этой задачи. В этой статье мы рассмотрим несколько подходов с примерами кода для отображения текущей даты и времени во Flutter.

Методы отображения текущей даты и времени во Flutter:

  1. Использование пакета intl:
    Пакет intl— это мощный инструмент для форматирования даты и времени во Flutter. Чтобы использовать его, выполните следующие действия:

Сначала добавьте пакет intlв файл pubspec.yaml:

dependencies:
  flutter:
    sdk: flutter
  intl: ^0.17.0

Импортируйте пакет в файл Dart:

import 'package:intl/intl.dart';

Используйте класс DateFormatиз пакета intlдля форматирования текущей даты и времени:

String formattedDate = DateFormat('yyyy-MM-dd HH:mm:ss').format(DateTime.now());
print(formattedDate);
  1. Использование пакета intlс языковым стандартом:
    Если вы хотите отображать дату и время в локализованном формате в зависимости от языкового стандарта устройства, вы можете указать языковой стандарт. в класс DateFormat. Например:

    String formattedDate = DateFormat.yMd('en_US').add_jms().format(DateTime.now());
    print(formattedDate);
  2. Использование пакета intlс часовым поясом:
    Чтобы отобразить текущую дату и время в определенном часовом поясе, вы можете использовать класс TZDateTimeиз пакета Пакет timezoneвместе с пакетом intl. Вот пример:

    import 'package:timezone/timezone.dart' as tz;
    import 'package:intl/intl.dart';
    void main() {
    tz.initializeTimeZones();
    tz.setLocalLocation(tz.getLocation('Europe/London'));
    tz.TZDateTime londonTime = tz.TZDateTime.now(tz.local);
    String formattedDate = DateFormat('yyyy-MM-dd HH:mm:ss').format(londonTime);
    print(formattedDate);
    }
  3. Использование пакета intlс относительным временем:
    Если вы хотите отображать текущую дату и время в относительном формате, например «только сейчас» или «5 минут назад»., вы можете использовать пакет intlвместе с пакетом intl_relative_time_format. Вот пример:

    import 'package:intl/intl.dart';
    import 'package:intl_relative_time_format/intl_relative_time_format.dart';
    void main() {
    RelativeTimeFormat relativeTimeFormat = RelativeTimeFormat(
    locale: 'en',
    clock: DateTime.now(),
    );
    String formattedDate = relativeTimeFormat.format(DateTime.now().subtract(Duration(minutes: 5)));
    print(formattedDate);
    }

В этой статье мы рассмотрели несколько способов отображения текущей даты и времени во Flutter. Используя пакет intl, мы можем форматировать дату и время различными способами, включая локализованные форматы, часовые пояса и относительное время. Эти методы обеспечивают гибкость и возможность настройки в соответствии с конкретными требованиями вашего приложения.