首页 > 解决方案 > 如何在颤动中将日期字符串转换为日期时间格式

问题描述

我有一个这种格式的字符串 03/11/2021,如何将其转换为 DateTime 格式。我使用 showDate Picker 来获取 DOB,我面临的问题是 initialDate 如果 _dob.text.isNotEmpty 那么我希望 showDatePicker 显示 _dob 日期,但它不起作用

 TextEditingController _dob = TextEditingController();
  @override
  void initState() {
    _dob.text = ""; //set the initial value of text field
    super.initState();
  }

TextFormField(
controller: _dob,
readOnly: true,
onTap: () async {
DateTime? pickedDate = await showDatePicker(
context: context,
initialDate: _dob.text.isNotEmpty? DateTime.parse(_dob.text):DateTime.now(),
firstDate: DateTime(1975),
lastDate: DateTime.now()
);
if (pickedDate != null) {
String formattedDate =
DateFormat('dd/MM/yyyy').format(pickedDate);
setState(() {
_dob.text = formattedDate;
 });
}
},
),

标签: flutter

解决方案


您可以尝试使用:DateTime.parse("your date string");

如果您想要一些更复杂的解析,请尝试在此处使用“intl”包,它是https://pub.dev/packages/intl


推荐阅读