Вы разрабатываете приложение Flutter и вам необходимо отображать даты в различных форматах? Не смотрите дальше! В этой статье блога мы рассмотрим различные методы форматирования дат во Flutter с помощью Dart. Мы рассмотрим все: от простого форматирования даты до локализованных и интернационализированных вариантов отображения даты. Итак, начнем!
-
Использование пакета
intl:
Flutter предоставляет пакетintl, который предлагает полный набор инструментов для форматирования дат. Чтобы использовать его, добавьте в файл Dart следующий оператор импорта:import 'package:intl/intl.dart'; -
Базовое форматирование даты.
КлассDateFormatиз пакетаintlпозволяет форматировать даты на основе предопределенных или пользовательских шаблонов. Вот пример:var now = DateTime.now(); var formatter = DateFormat('yyyy-MM-dd'); var formattedDate = formatter.format(now); print(formattedDate); // Output: 2024-03-05 -
Локализованное форматирование даты.
Если вы хотите отображать дату в соответствии с языковым стандартом пользователя, вы можете использовать конструкторDateFormat.yMd. Он автоматически адаптируется к предпочитаемому пользователем формату даты:var now = DateTime.now(); var formatter = DateFormat.yMd(); var formattedDate = formatter.format(now); print(formattedDate); // Output: 3/5/2024 (or any other format based on the user's locale) -
Пользовательские форматы дат.
КлассDateFormatподдерживает пользовательские шаблоны форматирования дат. Вы можете комбинировать различные заполнители для создания желаемого формата. Например:var now = DateTime.now(); var formatter = DateFormat('EEEE, MMMM d, yyyy'); var formattedDate = formatter.format(now); print(formattedDate); // Output: Wednesday, March 5, 2024 -
Обработка часовых поясов.
Если вам нужно работать с часовыми поясами, пакетintlпредоставляет конструкторDateFormataddPatternчтобы включить смещение часового пояса в форматированную дату.var now = DateTime.now(); var formatter = DateFormat('yyyy-MM-dd HH:mm:ss z'); var formattedDate = formatter.format(now); print(formattedDate); // Output: 2024-03-05 12:30:45 GMT+3 -
Форматирование относительного времени.
Чтобы отобразить относительное время (например, «3 минуты назад» или «через 2 дня»), вы можете использоватьпакетакласс:intl. 16var now = DateTime.now(); var formatter = RelativeDateFormat('en'); var formattedDate = formatter.format(now.subtract(Duration(minutes: 3))); print(formattedDate); // Output: 3 minutes ago
Это всего лишь несколько примеров того, как можно форматировать даты во Flutter с помощью Dart. Пакет intlпредлагает множество дополнительных функций и возможностей для удовлетворения широкого спектра потребностей в форматировании даты.
Освоив форматирование даты во Flutter, вы сможете создать безупречный и локализованный пользовательский интерфейс своего приложения. Так что экспериментируйте с этими методами, чтобы найти идеальный формат даты для вашего проекта Flutter!