मैंने एक शोटाइम पिकर बनाया और मैंने 24 घंटों में प्रारूप बदल दिया, लेकिन जब मैं ".then" भविष्य में मान निकाल रहा हूं तो मुझे 12h प्रारूप में समय मिलता है। क्या कोई मुझे बता सकता है कि मामला कहां है? यह कोड है:

 void _presentTimePicker() {
showTimePicker(
    context: context,
    initialTime: TimeOfDay(
        hour: TimeOfDay.now().hour,
        minute: (TimeOfDay.now().minute - TimeOfDay.now().minute % 10 + 10)
            .toInt()),
    builder: (BuildContext context, Widget child) {
      return MediaQuery(
          data:
              MediaQuery.of(context).copyWith(alwaysUse24HourFormat: true),
          child: child);
    }).then((value) {
  if (value == null) return;
  setState(() {
    time.text = TimeOfDay(
      hour: value.hour,
      minute: value.minute,
    ).format(context);
    print(time.text);
  });
});

}

आउटपुट है: 5:50 अपराह्न जब मैंने पिकर में चुना 17:50

1
bogdy9912 27 सितंबर 2020, 20:52

1 उत्तर

सबसे बढ़िया उत्तर

यह मुद्दा यह है कि आप दिन के समय को वापस एक स्ट्रिंग में कैसे बदल रहे हैं। इसके बजाय इसका उपयोग करने का प्रयास करें, ताकि आप डिफ़ॉल्ट को ओवरराइड कर सकें।

localizations.formatTimeOfDay(TimeOfDay(
  hour: value.hour,
  minute: value.minute,
), alwaysUse24HourFormat: true);

(डिफ़ॉल्ट MediaQuery से लिया गया है - देखें यहां कैसे के बारे में अधिक जानकारी के लिए।)

1
Richard Heap 27 सितंबर 2020, 23:59