如何解决如何在选择的时间添加秒数
我正在使用 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 看起来像
请帮助如何做到这一点。
解决方法
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 举报,一经查实,本站将立刻删除。