Преобразование времени суток является общим требованием во многих приложениях Flutter, особенно при работе с функциями, основанными на времени, такими как планирование, напоминания или отображение меток времени. В этой статье блога мы рассмотрим различные методы преобразования строки в TimeOfDay во Flutter. Независимо от того, являетесь ли вы новичком или опытным разработчиком Flutter, это руководство поможет вам справиться с этой важной задачей.
- Разбор строки в TimeOfDay с использованием DateTime:
Один из способов преобразования строки в TimeOfDay — использование класса DateTime в Dart. Вот пример:
String timeString = "12:30 PM";
DateTime parsedTime = DateFormat.jm().parse(timeString);
TimeOfDay timeOfDay = TimeOfDay.fromDateTime(parsedTime);
- Разделение строки и создание TimeOfDay:
Другой подход — разделить строку на часы и минуты, а затем создать объект TimeOfDay. Вот пример:
String timeString = "09:45 AM";
List<String> parts = timeString.split(":");
int hours = int.parse(parts[0]);
int minutes = int.parse(parts[1].split(" ")[0]);
String period = parts[1].split(" ")[1];
if (period == "PM" && hours != 12) {
hours += 12;
} else if (period == "AM" && hours == 12) {
hours = 0;
}
TimeOfDay timeOfDay = TimeOfDay(hour: hours, minute: minutes);
- Использование регулярных выражений.
Регулярные выражения могут быть полезны для извлечения значений часов, минут и периодов из строки. Вот пример:
import 'package:regex/regex.dart';
String timeString = "06:15 PM";
RegExp regExp = RegExp(r'(\d+):(\d+)\s+(AM|PM)');
Match match = regExp.firstMatch(timeString);
int hours = int.parse(match.group(1));
int minutes = int.parse(match.group(2));
String period = match.group(3);
if (period == "PM" && hours != 12) {
hours += 12;
} else if (period == "AM" && hours == 12) {
hours = 0;
}
TimeOfDay timeOfDay = TimeOfDay(hour: hours, minute: minutes);
- Использование внешнего пакета.
Если вы предпочитаете использовать готовое решение, вы можете использовать внешние пакеты, напримерtime_machineилиdate_format. Эти пакеты предоставляют удобные методы для анализа строковых представлений времени в объекты TimeOfDay.
Преобразование строки в TimeOfDay во Flutter — важный навык для создания функций, связанных со временем, в ваших приложениях. В этой статье мы рассмотрели несколько методов, включая анализ с помощью DateTime, разделение строки, использование регулярных выражений и использование внешних пакетов. Имея в своем распоряжении эти методы, вы сможете легко конвертировать время и улучшить функциональность своих приложений Flutter.