Flutter 从 List 中获取最接近现在的时间戳

Juj*_*uju 2 timestamp dart flutter

如何从列表中获取最接近现在的时间戳?

我得到了一个时间戳列表,我想确定未来最接近当前时间戳的时间戳。

我怎样才能做到这一点?

jul*_*101 6

像这样的东西?我不确定你是如何表示你的时间戳的,所以我用DateTime对象做了这个例子:

void main() {
  final dateTimes = <DateTime>[
    DateTime(2020, 8, 1),
    DateTime(2020, 8, 5),
    DateTime(2020, 7, 13),
    DateTime(2020, 7, 18),
    DateTime(2020, 8, 15),
    DateTime(2020, 8, 20)
  ];
  final now = DateTime(2020, 7, 14);
  
  final closetsDateTimeToNow = dateTimes.reduce(
      (a, b) => a.difference(now).abs() < b.difference(now).abs() ? a : b);

  print(closetsDateTimeToNow); // 2020-07-13 00:00:00.000
}
Run Code Online (Sandbox Code Playgroud)

请注意,该解决方案在列表中查找壁橱时间戳,并查看过去和未来。