引用的插件:
date_format: ^1.0.8
flutter_localizations:
sdk: flutter
flutter_cupertino_date_picker: ^1.0.12
import 'package:flutter/material.dart';
import 'package:flutter_cupertino_date_picker/flutter_cupertino_date_picker.dart';
import 'package:date_format/date_format.dart' as dateFormat;
class DatePickerPage extends StatefulWidget {
DatePickerPage({Key key}) : super(key: key);
@override
_DatePickerPageState createState() {
return _DatePickerPageState();
}
}
class _DatePickerPageState extends State<DatePickerPage> {
var _nowDate = DateTime.now();
_timePickerWidget() {
DatePicker.showDatePicker(context,
//配置語言
locale: DateTimePickerLocale.zh_cn,
//日期樣式
pickerTheme: DateTimePickerTheme(
confirm: Text("確定",style: TextStyle(fontSize: 20),),
cancel: Text("取消",style: TextStyle(fontSize: 20),),
),
//最小日期限制
minDateTime: DateTime.parse("1965-01-01"),
//最大日期限制
maxDateTime: DateTime.parse("2100-01-01"),
//初試日期
initialDateTime: DateTime.now(),
dateFormat: "yyyy-MM-dd EEE,H時:m分",
pickerMode: DateTimePickerMode.datetime,//show datetime 配置爲datetime格式的時候 dateFormat必須要加上時分的格式
//在日期發生改變的時候實時更改日期
onChange: (date, List<int> index) {
setState(() {
_nowDate = date;
});
}, //點擊確認後才更改日期
onConfirm: (date, List<int> index) {
setState(() {
_nowDate = date;
});
});
}
@override
void initState() {
super.initState();
}
@override
void dispose() {
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("CupertinoDatePickerPage"),
),
body: Column(
children: <Widget>[
InkWell(
onTap: _timePickerWidget,
child: Row(
children: <Widget>[
Text(dateFormat.formatDate(_nowDate, [dateFormat.yyyy, '年', dateFormat.mm, '月', dateFormat.dd, '日',dateFormat.HH,'時',dateFormat.n,'分'])),
Icon(Icons.keyboard_arrow_down)
],
),
)
],
),
);
}
}