es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Selector de fechas en flutter sin hora

Estoy tratando de seleccionar solo una fecha. Utilicé la dependencia flutter_holo_date_picker. Cuando selecciono una fecha, obtengo la hora junto con ella. Pero solo quiero la fecha sin la hora. ¿Cómo puedo eliminarla?

Aquí está mi código:

import 'package:flutter/material.dart';
import 'package:flutter_holo_date_picker/flutter_holo_date_picker.dart';

class WidgetPage extends StatefulWidget {
  @override
  _WidgetPageState createState() => _WidgetPageState();
}

class _WidgetPageState extends State<widgetpage> {
  late DateTime _selectedDate;

  @override
  Widget build(BuildContext context) {
    return SafeArea(
      child: Scaffold(
        body: Center(
          child: Container(
            padding: const EdgeInsets.symmetric(horizontal: 25),
            child: Expanded(
              child: Row(
                children: <widget>[
                  Expanded(
                    child: DatePickerWidget(
                      looping: false, // default is not looping
                      firstDate: DateTime(1990, 01, 01),
                      lastDate: DateTime(2030, 1, 1),
                      initialDate: DateTime(1991, 10, 12),
                      dateFormat: "dd-MMM-yyyy",
                      locale: DatePicker.localeFromString('en'),
                      onChange: (DateTime newDate) =>
                          _selectedDate = newDate,
                      pickerTheme: const DateTimePickerTheme(
                        itemTextStyle:
                            TextStyle(color: Colors.black, fontSize: 19),
                        dividerColor: Colors.blue,
                      ),
                    ),
                  ),
                  Expanded(
                    child: TextButton(
                      onPressed: (){
                        print('current_date: $_selectedDate');
                      },
                      child: const Text('submit'),
                    ),
                  ),
                ],
              ),
            ),
          ),
        ),
      ),
    );
  }
}

Salida:
1

Se espera que la salida sea:

current_date: 2022-1-1

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para eliminar la hora al seleccionar una fecha utilizando el paquete flutter_holo_date_picker, puedes utilizar el widget DatePicker y pasar TimePicker como nulo. Aquí tienes un ejemplo de cómo puedes modificar tu código para lograr esto:

    import 'package:flutter/material.dart';
    import 'package:flutter_holo_date_picker/flutter_holo_date_picker.dart';
    
    class WidgetPage extends StatefulWidget {
      @override
      _WidgetPageState createState() => _WidgetPageState();
    }
    
    class _WidgetPageState extends State<widgetpage> {
      late DateTime _selectedDate;
    
      @override
      Widget build(BuildContext context) {
        return SafeArea(
          child: Scaffold(
            body: Center(
              child: Container(
                padding: const EdgeInsets.symmetric(horizontal: 25),
                child: Expanded(
                  child: Row(
                    children: <widget>[
                      Expanded(
                        child: DatePicker(
                          DateTime.now(),
                          initialValue: DateTime(1991, 10, 12),
                          dateTextStyle: TextStyle(color: Colors.black, fontSize: 19),
                          pickerTheme: DateTimePickerTheme(
                            itemTextStyle: TextStyle(color: Colors.black, fontSize: 19),
                            dividerColor: Colors.blue,
                          ),
                          selectionColor: Colors.blue,
                          onDateChange: (date) {
                            setState(() {
                              _selectedDate = date;
                            });
                          },
                          pickerType: PickerType.date,
                          // Set the following property to null to remove time
                          timePicker: null,
                        ),
                      ),
                      Expanded(
                        child: TextButton(
                          onPressed: (){
                            print('current_date: $_selectedDate');
                          },
                          child: const Text('submit'),
                        ),
                      ),
                    ],
                  ),
                ),
              ),
            ),
          ),
        );
      }
    }
    

    En este código modificado, hemos reemplazado el widget DatePickerWidget con un widget DatePicker y hemos establecido la propiedad pickerType a PickerType.date. También hemos establecido timePicker como nulo para eliminar la hora al seleccionar una fecha.

    Con estas modificaciones, cuando seleccionas una fecha, la salida será en el formato yyyy-mm-dd.

Comments are closed.