Datetime 在飞镖和颤振中如何将时间四舍五入到最近的一刻钟?
我有一个日期时间,希望四舍五入到15秒(或另一个间隔) e、 g。 “2020-03-16 12:23:53.756” 到 “2020-03-16 12:23:45.000” 及 “2020-03-16 12:24:01.1234” 到Datetime 在飞镖和颤振中如何将时间四舍五入到最近的一刻钟?,datetime,flutter,dart,Datetime,Flutter,Dart,我有一个日期时间,希望四舍五入到15秒(或另一个间隔) e、 g。 “2020-03-16 12:23:53.756” 到 “2020-03-16 12:23:45.000” 及 “2020-03-16 12:24:01.1234” 到 “2020-03-16 12:24:00.000”您可以在Dart和Flatter中执行此操作,并在DateTime上进行扩展: extension on DateTime{ DateTime roundDown({Duration delta = con
“2020-03-16 12:24:00.000”您可以在Dart和Flatter中执行此操作,并在DateTime上进行扩展:
extension on DateTime{
DateTime roundDown({Duration delta = const Duration(seconds: 15)}){
return DateTime.fromMillisecondsSinceEpoch(
this.millisecondsSinceEpoch -
this.millisecondsSinceEpoch % delta.inMilliseconds
);
}
}
用法:
DateTime roundedDateTime = DateTime.now().roundDown();
print(roundedDateTime);
输出:“2020-03-16 12:23:45.000”
或
输出:“2020-03-16 12:00:00.000”以上答案的补充(请记住为分机指定一个名称,注意不要使用此名称。):
DateTime roundedDateTime = DateTime.now().roundDown(delta: Duration(hour: 1));
print(roundedDateTime);
extension DateTimeExtension on DateTime {
DateTime roundDown({Duration delta = const Duration(days: 1)}) {
return DateTime.fromMillisecondsSinceEpoch(
millisecondsSinceEpoch - millisecondsSinceEpoch % delta.inMilliseconds);
}
}