如何在flutter中添加周、月、年到日期

yoo*_*hoo 1 flutter

我在 flutter 中有一个日期字符串,我试图添加周、月和年,但不知道该怎么做。

在android java中,我们可以通过以下方式添加周、月、年

Calendar cal = Calendar.getInstance();
cal.setTime('2019-09-04');

cal.add(Calendar.WEEK_OF_MONTH,1);  // add one week
cal.add(Calendar.WEEK_OF_MONTH, 2 );  // add two weeks
cal.add(Calendar.MONTH, 1);  // add # of month
cal.add(Calendar.MONTH, 3);  // add 3 months
cal.add(Calendar.YEAR, 1);  // add 1 year

Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何在颤振中添加它。我知道我可以使用持续时间,但它只接受天数 cal.add(new Duration(days: 30)); 如果我使用持续时间,那么我需要计算出一个月、一周或一年中有多少天,这更多是数学问题。使用android java中的上述代码,添加周、月或年将由android执行。flutter 有没有办法在日期上添加周、月或年?

例如:如果我的日期是 01/31/2019 并且我想添加一个月,那么新日期应该是 02/28/2019。如果我想在 02/28/2019 上添加一个月,那么输出应该是 03/31/2019

几周甚至几年都是如此。如果指定的话,flutter 应该在日期上添加一周或一年等等。提前致谢

Mar*_*rco 6

您可以在这篇中等文章中找到您需要的一切: 前 7 种日期方法

假设您有“2019-09-04”,在 Dart 中您有:

var myDate = DateTime.parse("2019-09-04 20:18:04Z");
myDate.add(Duration(days: 10, hours: 5)));
Run Code Online (Sandbox Code Playgroud)

然后打印出来:

print(myDate.toLocal());
Run Code Online (Sandbox Code Playgroud)

编辑:

由于您在下面发表评论,要添加年份或月份,请执行以下操作:

var date = new DateTime(2019, 9, 4);
var newDate = new DateTime(date.year + 1, date.month + 2, date.day);
Run Code Online (Sandbox Code Playgroud)

您可以在这里找到类似的答案:Add/Substract Months/years to date in dart?