
In this post, I will show you how to use a flutter datepicker. The flutter datepicker needs one more extra flutter package.
Package name:- Intl.
Why we used “Intl” package…?
This package provides internationalization and localization facilities, including message translation, plurals and genders, date/number formatting and parsing, and bidirectional text.
For more information, you can find this package into Flutter official package website. I used the latest version of this package.
1)intl: ^0.16.1(Add this into your pubspec.yaml file)
2)import ‘package:intl/intl.dart’;
1)main.dart
import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:intl/intl.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( theme: ThemeData( primarySwatch: Colors.blue, ), home: DatePicker(), ); } }
2)datePicker.dart
import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:intl/intl.dart'; class DatePicker extends StatefulWidget { DatePicker({showDate}); @override _DatePickerState createState() => _DatePickerState(); } class _DatePickerState extends State<DatePicker> { DateTime selected; _showDateTimePicker() async { selected = await showDatePicker( context: context, initialDate: new DateTime.now(), firstDate: new DateTime(1960), lastDate: new DateTime(2050), ); setState(() {}); } @override Widget build(BuildContext context) { var showDate = new Column( children: <Widget>[ selected != null ? new Text( new DateFormat('EEE MMM d').format(selected), style: new TextStyle( color: Colors.white, fontSize: 20.0, fontWeight: FontWeight.bold), ): new SizedBox( width: 0.0, height: 0.0, ), ], ); return Scaffold( appBar: AppBar( title: Text("Date and Time"), centerTitle: true, backgroundColor: Color(0xFF38819C), ), body: Container( decoration: BoxDecoration( gradient: LinearGradient( // Where the linear gradient begins and ends begin: Alignment.topCenter, end: Alignment.bottomCenter, colors: [ Color(0xFF38819C), Color(0xFF51B9E1), ], ), ), child:Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Row( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ Icon(Icons.arrow_left,size: 40,color: Colors.white), SizedBox(width: 10), showDate, // date SizedBox(width: 10), Icon(Icons.arrow_right,size: 40,color: Colors.white), ], ), SizedBox(height: 20), IconButton(icon: FaIcon(FontAwesomeIcons.solidCalendarAlt, color: Colors.white, size: 30, ), onPressed: () => _showDateTimePicker()) ], ), ), ); } }
Output
