在Flutter中,默认的日期选择器小部件是showDatePicker
,它返回一个Future<DateTime>
对象,包含选择的日期和时间。要从日期选择器中删除时间戳并仅获取日期,您可以使用intl
包中的DateFormat
类来格式化日期。
首先,您需要在pubspec.yaml
文件中添加intl
依赖:
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
dev_dependencies:
flutter_test:
sdk: flutter
flutter_localizations:
sdk: flutter
intl: ^0.17.0
然后,在您的代码中导入必要的包:
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';
import 'package:intl/date_symbol_data_local.dart';
在您的小部件中,您可以使用showDatePicker
方法显示日期选择器,并使用DateFormat
类将选择的日期格式化为所需的格式:
class MyWidget extends StatefulWidget {
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
DateTime _selectedDate;
Future<void> _selectDate() async {
final DateTime pickedDate = await showDatePicker(
context: context,
initialDate: DateTime.now(),
firstDate: DateTime(2000),
lastDate: DateTime(2100),
);
if (pickedDate != null) {
setState(() {
_selectedDate = pickedDate;
});
}
}
@override
Widget build(BuildContext context) {
return Column(
children: <Widget>[
RaisedButton(
onPressed: _selectDate,
child: Text('Select Date'),
),
Text(
_selectedDate == null
? 'No date selected'
: DateFormat.yMd().format(_selectedDate),
),
],
);
}
}
在上面的代码中,我们创建了一个MyWidget
小部件,并使用_selectedDate
变量来存储选择的日期。 _selectDate
方法显示日期选择器并将选择的日期存储在_selectedDate
中。 Text
小部件用于显示选择的日期,使用DateFormat.yMd()
格式化日期。
注意:在使用DateFormat
类之前,您需要在应用程序中的任何位置调用initializeDateFormatting()
方法来初始化日期格式。
这里是腾讯云相关的产品介绍链接地址:腾讯云Flutter开发
请注意,以上提供的答案仅供参考,具体实现可能因您的项目需求而有所不同。
领取专属 10元无门槛券
手把手带您无忧上云