Во Flutter отображение текущей даты и времени является общим требованием для многих приложений. Хотите ли вы показать его в определенном формате, с часовыми поясами или локализовано, Flutter предоставляет различные методы для выполнения этой задачи. В этой статье мы рассмотрим несколько подходов с примерами кода для отображения текущей даты и времени во Flutter.
Методы отображения текущей даты и времени во Flutter:
- Использование пакета 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);
-
Использование пакета
intlс языковым стандартом:
Если вы хотите отображать дату и время в локализованном формате в зависимости от языкового стандарта устройства, вы можете указать языковой стандарт. в классDateFormat. Например:String formattedDate = DateFormat.yMd('en_US').add_jms().format(DateTime.now()); print(formattedDate); -
Использование пакета
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); } -
Использование пакета
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, мы можем форматировать дату и время различными способами, включая локализованные форматы, часовые пояса и относительное время. Эти методы обеспечивают гибкость и возможность настройки в соответствии с конкретными требованиями вашего приложения.