Flutter:如何在String中用mounth更改dateTime格式?

时间:2019-06-04 10:50:55

标签: flutter

您好,我没有以这种格式输出此代码(2019年6月4日)

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

RegExp regExp = new RegExp(       
    r"(^\S*)",
);

var match = regExp.firstMatch("$daysfromnow");
daysfromnow_modify = match.group(1);
  

当前outpub:2019-06-04

     

预期产量:2019年6月4日

更新:

我尝试格式化,但是按按钮时我没有成功更改日期...

这是新代码

     new IconButton(
              icon: Icon(Icons.keyboard_arrow_left),

              onPressed: () {
        setState(() {
          changedate--;
          DateTime now = DateTime.now();
          formattedDate = DateFormat.yMMMMd("en_FR").format(now);
          daysfromnow = formattedDate.add(new Duration(days: changedate));  //add can't be a String ...
});
)}

我也尝试过这个..

 formattedDate = DateFormat.yMMMMd("en_FR").now.add(new Duration(days: changedate));

1 个答案:

答案 0 :(得分:4)

您可以尝试使用DateFormat,只需将pubspec.yaml包含intl依赖项

import 'package:intl/intl.dart';

DateTime now = DateTime.now();
String formattedDate = DateFormat("dMMMMy")format(now);
print(formattedDate);

根据您的要求,您可以查看DateFormat

从DateFormat类获取的一些示例可以为您提供更多帮助。

String formattedDate = DateFormat.yMd(); // 7/10/1996
String formattedDate = DateFormat("yMd"); // 7/10/1996
String formattedDate = DateFormat.yMMMMd("en_US"); // July 10, 1996
String formattedDate = DateFormat.yMMMMd("en_FR"); // 10 July 1996 // Locale French

更新

首先将值添加到日期,然后调用格式。

示例:

setState(() {
    changedate--;
    var now = DateTime.now(); // Current Date
    var daysFromNow = now.add(new Duration(days: changedate); // Assuming this is the date you want (Variable is unclear)

    String formattedDate = DateFormat.yMMMMd('en_FR').format(daysFromNow);
    print(formattedDate);

   // daysfromnow = formattedDate // This cannot exist due to the formattedDate is a `String`
});