web-dev-qa-db-ja.com

Flutter / Dartで先月の日付を取得する

フラッターでは、これを使用して現在の月を取得できます

var now = new DateTime.now();
var formatter = new DateFormat('MM');
String month = formatter.format(now);

しかし、先月の日付を取得する方法は?特に、現在の日付が1月(01)の場合。オペランドマイナス(-)を使用すると、月-1のように適切な月を取得できません。

4
Arief Wijaya

そのまま使えます

var prevMonth = new DateTime(date.year, date.month - 1, date.day);

var date = new DateTime(2018, 1, 13);

あなたは得る

2017-12-13

通常、夏時間とタイムゾーンの問題を回避するために、日付の計算を行う前にUTCに変換してからローカルの日付/時刻に戻すことをお勧めします。

14

このパッケージを試してください Jiffy 、それは momentjs 構文を使用しました。下記参照

_Jiffy().subtract(months: 1);
_

ここで、Jiffy()は日付を返します。次のこともできます。同じ結果

_var now = DateTime.now();
Jiffy(now).subtract(months: 1);
_

Jiffyは、うるう年と毎月の日数を尊重します

2
Jama Mohamed

Subtractメソッドを使用して、過去の月の日付を取得できます。

DateTime pastMonth = DateTime.now().subtract(Duration(days: 30));
2
Alwin

GünterZöchbauerに加えて

var now = new DateTime.now();
    String g = ('${now.year}/ ${now.month}/ ${now.day}');
    print(g);
0
Harbdollar