【问题标题】:How to convert string to DateTime object with month name, Date and Year flutter?如何将字符串转换为带有月份名称、日期和年份的 DateTime 对象?
【发布时间】:2023-03-09 16:03:01
【问题描述】:

我有像“2020 年 4 月 20 日”这样的字符串。我想将字符串转换为 DateTime()。

我面临的问题是 DateTime.parse() 不接受月份名称。

【问题讨论】:

    标签: datetime flutter dart


    【解决方案1】:

    您可以创建一个包含所有月份名称的列表,然后您可以执行拆分操作并找到字符串的特定部分,然后将所有内容放在 DataTime 中。

    下面的代码将清除你的想法。

    String sdata = 'April 20, 2020';
    
      List<String> months = [
        'January',
        'February',
        'March',
        'April',
        'May',
        'June',
        'July',
        'August',
        'September',
        'October',
        'November',
        'December'
      ]; 
    
    DateTime _dateTime = DateTime(
            int.parse(sdata.substring(sdata.length - 4, sdata.length)),
            months.indexOf(sdata.split(' ')[0]) + 1,
            int.parse(sdata.substring(sdata.length - 8, sdata.length - 6)));
        print(_dateTime);
    

    【讨论】:

      【解决方案2】:

      试试intl dart 包。

      DateTime _parseDateStr(String inputString) {
        DateFormat format = DateFormat.yMMMMd();
        return format.parse(inputString);
      }
      

      【讨论】:

        【解决方案3】:

        DateTime parse 不支持此类日期格式。您可以使用intl 包来实现这一点。

        var dateString    = 'April 20, 2020';
        DateFormat format = new DateFormat("MMMM dd, yyyy");
        var formattedDate = format.parse(dateString);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-07
          • 1970-01-01
          • 2016-03-09
          相关资源
          最近更新 更多