как убрать отметку времени или получить только форму даты в поле выбора даты по умолчанию? - PullRequest
1 голос
/ 16 апреля 2019

Я пытаюсь получить дату из виджета даты по умолчанию для флаттера, но когда я выбираю дату, я получаю время с ней. Я хочу только дату, а не время. & также хотел бы изменить формат даты, если это возможно.

Это то, что я где-то использовал из примера.

DateTime selectedDate = DateTime.now();

Future<Null> _selectDate(BuildContext context) async {
    final DateTime picked = await showDatePicker(
        context: context,
        initialDate: selectedDate,
        firstDate: DateTime(2019),
        lastDate: DateTime(2020));
    if (picked != null && picked != selectedDate)
      setState(() {
        selectedDate = picked;
      });
  }



This is where I am getting value to string.
It prints like "2019-04-16 12:18:06.018950"

child: FlatButton(
                        materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
                        onPressed: () {
                          _selectDate(context);
                          print("Selected Date = $selectedDate");
                        },
                        child: Text(selectedDate == null
                            ? "Select Date"
                            : selectedDate.toString()),
                      )),

Я хочу только дату из этого «2019-04-16 12: 18: 06.018950», а также изменить формат отображения даты как «дд-мм-гггг»

это возможно?

Ответы [ 2 ]

2 голосов
/ 16 апреля 2019

Я делаю Custom DateFormat, вы можете использовать этот код, тогда вы получите вывод как: 16-04-2019

TextEditingController _datecontroller = new TextEditingController();

        var myFormat = DateFormat('d-MM-yyyy');

        Future<void> _selectDate(BuildContext context) async {
            final DateTime picked = await showDatePicker(
                context: context,
                initialDate: date,
                firstDate: DateTime(2015, 8),
                lastDate: DateTime(2101));
            setState(() {
              date = picked ?? date;
            });
          }

        InkWell(
                            onTap: () => _selectDate(context),
                            child: IgnorePointer(
                              child: TextField(
                                controller: _datecontroller,
                                decoration: InputDecoration(

                                  hintText: ('${myFormat.format(date)}'),
                                ),

                              ),
                            ),
                          ),
0 голосов
/ 16 апреля 2019

Вы можете использовать класс DateTime для этого. Просто проанализируйте вашу строку и получите доступ к отдельным частям как к собственности.

var date = DateTime.parse("2019-04-16 12:18:06.018950");
var formattedDate = "${date.day}-${date.month}-${date.year}";

print (formattedDate);

Это выдаст

16-4-2019

Вот официальная документация .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...