微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在选择的时间添加秒数

如何解决如何在选择的时间添加秒数

我正在使用 showTimePicker 小部件来选择时间,当我选择时间时,它会像这样打印 7:10 PM 但我也想添加秒数,它应该像 7:10:00 PM 秒可以是认的 00

这是我正在创建的代码

 TextField(
        decoration: Inputdecoration(labelText: timein,hintText: "Time in",icon: Icon(Icons.timer)),controller:timeinController,readOnly:true,onTap: () async {
                  TimeOfDay pickedTime =  await showTimePicker(
                          initialTime: TimeOfDay.Now(),context: context,);
        if(pickedTime != null ){
                      print(pickedTime.format(context));   //output 7:10 PM
                      setState(() {
                        timeinController.text = pickedTime.format(context);  //set the value of text field. 
                      });
                  }else{
                      print("Time is not selected");
                  }
                },),

这里的 showtimepicker 看起来像

enter image description here

请帮助如何做到这一点。

解决方法

TimeOfDay 不包括秒,但 DateTime 提供了它,因此您可以从 DateTime 获取秒并将其附加到 TimeOfDay,如下所示。

      TextField(
              decoration: InputDecoration(labelText: 'Time in',hintText: "Time in",icon: Icon(Icons.timer)),// controller: timeinController,readOnly:true,onTap: () async {
                TimeOfDay? pickedTime =  await showTimePicker(
                  initialTime: TimeOfDay.now(),context: context,);
                if(pickedTime != null ){
                  DateTime date = DateTime.now();
                  String second = date.second.toString().padLeft(2,'0');
                  List timeSplit = pickedTime.format(context).split(' ');
                  String formattedTime = timeSplit[0];
                  String time = '$formattedTime:$second';
                  String type = '';
                  if(timeSplit.length > 1) {
                    type = timeSplit[1];
                    time = '$time $type';
                  }

                  print(time); //output 7:10:00 PM
                  setState(() {
                    timeinController.text = pickedTime.format(context);  //set the value of text field.
                  });
                }else{
                  print("Time is not selected");
                }
              },)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。