No Description

date_time_picker_widget.dart 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import 'package:flutter/material.dart';
  2. import 'package:intl/intl.dart';
  3. class DateTimePickerWidget extends StatefulWidget {
  4. @override
  5. _DateTimePickerWidgetState createState() => _DateTimePickerWidgetState();
  6. }
  7. class _DateTimePickerWidgetState extends State<DateTimePickerWidget> {
  8. DateTime selectedDate = DateTime.now();
  9. final DateFormat dateFormat = DateFormat('yyyy-MM-dd HH:mm');
  10. @override
  11. Widget build(BuildContext context) {
  12. return Column(
  13. mainAxisAlignment: MainAxisAlignment.center,
  14. children: <Widget>[
  15. Text(dateFormat.format(selectedDate)),
  16. RaisedButton(
  17. child: Text('Choose new date time'),
  18. onPressed: () async {
  19. final selectedDate = await _selectDateTime(context);
  20. if (selectedDate == null) return;
  21. print(selectedDate);
  22. final selectedTime = await _selectTime(context);
  23. if (selectedTime == null) return;
  24. print(selectedTime);
  25. setState(() {
  26. this.selectedDate = DateTime(
  27. selectedDate.year,
  28. selectedDate.month,
  29. selectedDate.day,
  30. selectedTime.hour,
  31. selectedTime.minute,
  32. );
  33. });
  34. },
  35. ),
  36. ],
  37. );
  38. }
  39. Future<TimeOfDay> _selectTime(BuildContext context) {
  40. final now = DateTime.now();
  41. return showTimePicker(
  42. context: context,
  43. initialTime: TimeOfDay(hour: now.hour, minute: now.minute),
  44. );
  45. }
  46. Future<DateTime> _selectDateTime(BuildContext context) => showDatePicker(
  47. context: context,
  48. initialDate: DateTime.now().add(Duration(seconds: 1)),
  49. firstDate: DateTime.now(),
  50. lastDate: DateTime(2100),
  51. );
  52. }