При работе с выбором даты во Flutter вы можете столкнуться со сценариями, когда вам нужно выбрать дату без какой-либо связанной информации о времени. В этом сообщении блога мы рассмотрим пять различных методов выполнения этой задачи, а также примеры кода. Давайте начнем!
Метод 1: использование функции showDatePicker
Future<void> _selectDate(BuildContext context) async {
final DateTime? picked = await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(1900),
lastDate: DateTime(2100),
helpText: 'Select a date',
builder: (BuildContext context, Widget? child) {
return Theme(
data: ThemeData.light().copyWith(
primaryColor: Colors.blue, // set your desired color here
accentColor: Colors.blue,
colorScheme: ColorScheme.light(primary: Colors.blue),
buttonTheme: ButtonThemeData(textTheme: ButtonTextTheme.primary),
),
child: child!,
);
},
);
if (picked != null) {
final dateWithoutTime = DateTime(picked.year, picked.month, picked.day);
// Do something with the selected date without time
}
}
Метод 2: использование пакета intl
import 'package:intl/intl.dart';
String formatDateWithoutTime(DateTime date) {
final formatter = DateFormat('yyyy-MM-dd');
return formatter.format(date);
}
void main() {
final now = DateTime.now();
final dateWithoutTime = formatDateWithoutTime(now);
// Use `dateWithoutTime` as needed
}
Метод 3: использование пакета intl
(с часовым поясом)
import 'package:intl/intl.dart';
String formatDateWithoutTime(DateTime date) {
final formatter = DateFormat('yyyy-MM-dd');
final formattedString = formatter.format(date.toLocal());
return formattedString;
}
void main() {
final now = DateTime.now().toUtc();
final dateWithoutTime = formatDateWithoutTime(now);
// Use `dateWithoutTime` as needed
}
Метод 4: извлечение компонентов даты вручную
void main() {
final now = DateTime.now();
final dateWithoutTime = DateTime(now.year, now.month, now.day);
// Use `dateWithoutTime` as needed
}
Метод 5: использование пакета date_format
import 'package:date_format/date_format.dart';
void main() {
final now = DateTime.now();
final formattedString = formatDate(now, [yyyy, '-', mm, '-', dd]);
// Use `formattedString` as needed
}
В этой статье мы рассмотрели пять различных способов выбора даты без времени во Flutter. Мы рассмотрели использование функции showDatePicker
, пакета intl
, ручного извлечения компонентов даты и пакета date_format
. В зависимости от ваших конкретных требований вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Приятного кодирования!