0

我正在使用flutter和moor作为数据库库构建一个移动应用程序。我必须获取特定月份的所有交易。我的查询如下。

Future<List<Transaction>> fetchTransactionsByCategory(
  String name, DateTime reportDate) {
  return (select(transactions)
      ..where((i) {
        final date = i.date;
        return date.year.equals(reportDate.year) &
            date.month.equals(reportDate.month) &
            i.subCategory.equals(name);
      }))
    .get();

}

问题是,如果交易时间是 2021 年 5 月 1 日 12:00:00 AM,它不是在 5 月报告中,而是在 4 月报告中。我能够在数据库中理解它在 2021 年 4 月 30 日 16:00:00 PM(此处为时区 +8)中持续存在。

我必须如何编写查询以根据本地时区获取事务?有什么建议么?

4

1 回答 1

1

在您的 pubspecintl: ^0.16.1 和导入中

import 'package:intl/intl.dart';

在你的最高状态(第一状态)。

然后你可以像这样使用它;

@override
void initState() {
 super.initState();
 initializeDateFormatting();
}
于 2021-04-30T12:40:37.763 回答