flutter 如何将2023年1月24日转换为2023年1月24日

h9vpoimq  于 2023-01-09  发布在  Flutter
关注(0)|答案(2)|浏览(262)

我尝试通过执行以下代码转换日期

DateFormat('yyyy-MM-dd')
              .add_yMMMd()
              .parse((state as SlotRequestPopUpDataLoadedState).date)
              .toString(),
        );

但它会引发错误

Unhandled Exception: FormatException: Trying to read - from 09/01/2023 at position 3
lf5gs5x2

lf5gs5x21#

看起来您正在尝试使用add_yMMMd格式分析格式为“yyyy-MM-dd”的日期字符串。这会导致FormatException,因为这两种格式不兼容。
要解析“yyyy-MM-dd”格式的日期字符串,应该使用带有DateFormat(“yyyy-MM-dd”)格式化程序的parse方法。

DateTime date = DateFormat("yyyy-MM-dd").parse("2023-01-09");
ffx8fchx

ffx8fchx2#

出现这个问题是因为您试图解析一个包含-的日期,但您的日期包含/

var date = '24/01/2023';

你可以这样转换它:

var Dtime = DateFormat('dd-MM-yyyy').parse(date.replaceAll('/', '-'));

print('newDate = ${DateFormat('yyyy-MM-dd').format(Dtime)}'); //newDate = 2023-01-24

相关问题