【问题标题】:How to eliminate seconds in DateFormat Flutter如何消除 DateFormat Flutter 中的秒数
【发布时间】:2021-03-28 03:47:58
【问题描述】:

点击按钮后,我试图在文本小部件中显示当前日期时间。以下工作,但我想更改格式。

我试图从 DateFormat 字符串中删除毫秒,但它似乎不起作用,因为它们无论如何都会被渲染 当前方法

DateFormat dateFormat = DateFormat("yyyy-MM-dd HH:mm");
  CalendarClient calendarClient = CalendarClient();
  DateTime startTime = DateTime.now();
  DateTime endTime = DateTime.now().add(Duration(days: 1));
  TextEditingController _eventName = TextEditingController();

return Center(
      child: Container(
        color: Colors.black,
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Row(
              children: <Widget>[
                FlatButton(
                    onPressed: () {
                      DatePicker.showDateTimePicker(context, showTitleActions: true, minTime: DateTime.now(), maxTime: DateTime(2222, 6, 7), onChanged: (date) {
                        print('change $date');
                      }, onConfirm: (date) {
                        setState(() {
                          this.startTime = date;
                          print('start time $date');
                        });
                      }, currentTime: DateTime.now(), locale: LocaleType.en);
                    },
                    child: Text(
                      'Event Start Time',
                      style: TextStyle(color: Colors.white, fontSize: 18),
                    )),
                Text(
                  '$startTime',
                  style: TextStyle(color: Colors.redAccent, fontSize: 18),
                ),
              ],
            ),
            SizedBox(
              height: 20,
            ),
            Row(
              children: <Widget>[
                FlatButton(
                    onPressed: () {
                      DatePicker.showDateTimePicker(context, showTitleActions: true, minTime: DateTime(2019, 3, 5), maxTime: DateTime(2200, 6, 7),
                          onChanged: (date) {
                        print('end time $date');
                      }, onConfirm: (date) {
                        setState(() {
                          this.endTime = date;
                        });
                      }, currentTime: DateTime.now(), locale: LocaleType.en);
                    },
                    child: Text(
                      'Event End Time',
                      style: TextStyle(color: Colors.white, fontSize: 18),
                    )),
                Text(
                  '$endTime',
                  style: TextStyle(color: Colors.redAccent, fontSize: 18),
                ),
              ],
            ),
            SizedBox(
              height: 20,
            ),
            Container(
              width: 250,
              decoration: BoxDecoration(
                  borderRadius: BorderRadius.all(Radius.circular(40)), border: Border.all(width: 3, color: Colors.redAccent, style: BorderStyle.solid)),
              padding: EdgeInsets.all(5.0),
              child: TextField(
                style: TextStyle(color: Colors.white),
                textAlign: TextAlign.center,
                textInputAction: TextInputAction.send,
                controller: _eventName,
                decoration: InputDecoration(
                  enabledBorder: UnderlineInputBorder(
                    borderSide: BorderSide(color: Colors.transparent),
                  ),
                  focusedBorder: UnderlineInputBorder(
                    borderSide: BorderSide(color: Colors.transparent),
                  ),
                  prefixIcon: Icon(
                    Icons.event,
                    color: Colors.redAccent,
                  ),
                  hintText: 'Enter Event title',
                  hintStyle: TextStyle(color: Colors.redAccent, fontSize: 18),
                ),
                cursorColor: Colors.redAccent,
                cursorRadius: Radius.circular(16.0),
                cursorWidth: 16.0,
              ),
            ),
            SizedBox(
              height: 20,
            ),
            RaisedButton(
                child: Text(
                  'Insert Event',
                  style: TextStyle(color: Colors.black, fontSize: 20),
                ),
                color: Colors.redAccent,
                onPressed: () {
                  calendarClient.insert(
                    _eventName.text,
                    startTime,
                    endTime,
                  );
                }),
          ],
        ),
      ),
    );
  }
}

结果

YYYY-MM-JJ HH-MM:00.000

问题

如何删除 :00.000 部分?

【问题讨论】:

    标签: flutter


    【解决方案1】:

    您有 dateFormat 属性但没有使用它来格式化日期时间 应该是

    print('start time ${dateFormat.format(date)}');
    

    Text(
      '${dateFormat.format(startTime)}',
      style: TextStyle(color: Colors.redAccent, fontSize: 18),
    ),
    

    【讨论】:

      【解决方案2】:

      改变

      DateFormat dateFormat = DateFormat("yyyy-MM-dd HH:mm:ss");
      

      DateFormat dateFormat = DateFormat("yyyy-MM-dd HH:mm");
      

      【讨论】:

        【解决方案3】:

        您可以使用intl: ^0.16.1 为了更好地分割您的日期和时间,如果您想使用日期、星期名称或其他可以轻松管理的格式。

        【讨论】:

        • 我使用的是最新版本的包
        猜你喜欢
        • 2016-05-07
        • 1970-01-01
        • 2019-09-30
        • 2021-05-26
        • 1970-01-01
        • 2012-04-25
        • 1970-01-01
        • 2023-03-25
        • 1970-01-01
        相关资源
        最近更新 更多