x23*_*3b5 3 datetime dart flutter
我有一个DateTime并希望将其四舍五入到 15 秒(或其他时间间隔)。
例如“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 ”
x23*_*3b5 10
你可以在 Dart 和 Flutter 中使用 DateTime 的扩展来做到这一点:
extension on DateTime{
DateTime roundDown({Duration delta = const Duration(seconds: 15)}){
return DateTime.fromMillisecondsSinceEpoch(
this.millisecondsSinceEpoch -
this.millisecondsSinceEpoch % delta.inMilliseconds
);
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
DateTime roundedDateTime = DateTime.now().roundDown();
print(roundedDateTime);
Run Code Online (Sandbox Code Playgroud)
输出:“2020-03-16 12:23:45.000”
或者
DateTime roundedDateTime = DateTime.now().roundDown(delta: Duration(hour: 1));
print(roundedDateTime);
Run Code Online (Sandbox Code Playgroud)
输出:“2020-03-16 12:00:00.000”
小智 5
除了上面的回答之外(请记住为您的扩展命名,并小心使用它。):
extension DateTimeExtension on DateTime {
DateTime roundDown({Duration delta = const Duration(days: 1)}) {
return DateTime.fromMillisecondsSinceEpoch(
millisecondsSinceEpoch - millisecondsSinceEpoch % delta.inMilliseconds);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1516 次 |
| 最近记录: |