dart 将字符串dateTime yyyy-dd-mm转换为January 01,2023

vsikbqxv  于 2023-04-27  发布在  其他
关注(0)|答案(2)|浏览(128)

我想以可读的方式显示datetime 2023-01-01 11:59:59:0000的字符串,如January 01, 2023 11:59:59 AM
我确实有一个DateFromDateTo的控制器,它接受DateTime值。所以一旦控制器有了值,我希望它们显示为January 01,2023 11:59:59AM而不是原始的DateTime格式。
我有这个错误Trying to read MMMM from at 0
这是我第一次尝试转换值的显示

textContainer("Date From: ",
              "${(DateFormat('MMMM d, y', 'en_US').parse(_couponDateFromCtrlr.text))}"),
 textContainer("Date From: ",
              "${(DateFormat('MMMM d, y', 'en_US').parse(_couponDateFromCtrlr.text))}")

这是我的第二次尝试,它给了我invalid date format错误

_couponDateFromCtrlr.text != null
              ? textContainer("Date From: ",
                  "${(DateFormat('MMMM d, y', 'en_US').parse(_couponDateFromCtrlr.text))}")
              : const Text("No Date From Selected"),
          _couponDateToCtrlr.text != null
              ? textContainer("Date To: ",
                  "${(DateFormat('MMMM d, y', 'en_US').parse(_couponDateToCtrlr.text))}")
              : const Text("No Date To Selected")

而这就是它在显示时的用户界面。

polhcujo

polhcujo1#

下面是一个例子,说明如何从2023-01-01 11:59:59:0000的字符串格式中获取DateTime,然后将其解析为January 01,2023 11:59:59AM的字符串:

final date = DateFormat('yyyy-mm-dd hh:mm:ss', 'en_US')
            .parse("2023-01-01 11:59:59:0000"); // string from your text controller
final string = DateFormat('MMMM d, y hh:mm:ss a', 'en_US').format(date); // result --> January 01,2023 11:59:59AM

如果您从_couponDateFromCtrlr获取DateTime,则可以跳过第一部分。

lstz6jyr

lstz6jyr2#

只需将DateTime值传递给下面的函数:
DateFormat.yMMMMd().format(value)
这将返回您所需的格式。请参阅此处提供的备忘单以了解您的日期格式需求。
DateFormat Flutter: 2 Ways to Master DateTime Format
Happy coding:)

相关问题