如何在Flutter中增加或减少Dateformat输出的天数?

时间:2019-06-04 11:54:38

标签: flutter

你好,我有这种格式的日期示例:2019年6月4日

  DateTime now = DateTime.now();
               formattedDate = DateFormat.yMMMMd("fr_FR").format(now);

我现在尝试在按下按钮后增加或减少几天,但是先前的代码与:不兼容:

var newDate= now.add(new Duration(days: changedate));

2 个答案:

答案 0 :(得分:2)

首先:定义格式器:

final _dateFormatter = DateFormat.yMMMMd("fr_FR");

然后,您需要一种可以接收日期和天数的方法(正数会增加天数,负数会减少天数):

DateTime changeDate(DateTime dtObj, int numberOfDays) {
    return dtObj.add(Duration(days: numberOfDays));
}

然后,当您需要显示日期时,可以对其进行格式化:

String formattedDate = _dateFormatter.format(previouslyChangedDate);
print(formattedDate); //prints as: 4 juin 2019

答案 1 :(得分:0)

一天的增减可以通过DateTime

初始化需要显示的DateFormat

  var _inputFormat = DateFormat('EE, d MMM yyyy');
  var _selectedDate = DateTime.now();

代码:

@override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Container(
            height: 40,
            padding: EdgeInsets.symmetric(horizontal: 8),
            margin: EdgeInsets.symmetric(horizontal: 18),
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(8),
              color: Colors.blue,
            ),
            child: Row(
              children: [
                InkWell(
                  onTap: () {
                    _selectedDate = DateTime(_selectedDate.year,
                        _selectedDate.month, _selectedDate.day - 1);
                    setState(() {});
                  },
                  child: Icon(Icons.exposure_minus_1_sharp),
                ),
                const Spacer(),
                Text(
                  _inputFormat.format(_selectedDate),
                ),
                Spacer(),
                InkWell(
                  onTap: () {
                    _selectedDate = DateTime(_selectedDate.year,
                        _selectedDate.month, _selectedDate.day + 1);
                    print(_inputFormat.format(_selectedDate));
                    setState(() {});
                  },
                  child: Icon(Icons.plus_one),
                ),
              ],
            )),
      ),
    );

输出:

enter image description here