dart:core
库中Duration
类的用法介绍如下。
时间跨度,例如 27 天 4 小时 12 分钟 3 秒。
Duration
表示从一个时间点到另一个时间点的差异。如果差异是从较晚的时间到较早的时间,则持续时间可能是"negative"。
持续时间与上下文无关。例如,2 天的持续时间始终为 48 小时,即使在时区即将进行 daylight-savings 切换时添加到 DateTime
也是如此。 (参见DateTime.add)。
尽管名称相同,但 Duration
对象并未按照 ISO 8601 的规定实现 "Durations"。特别是,持续时间对象不会跟踪单独提供的成员(例如 "days" 或 "hours"),但仅使用这些参数来计算相应时间间隔的长度。
要创建一个新的 Duration
对象,请使用该类的单个构造函数并提供适当的参数:
const fastestMarathon = Duration(hours: 2, minutes: 3, seconds: 2);
Duration 表示单个微秒数,它是构造函数的所有单个参数的总和。
属性可以以不同的方式访问该单个数字。例如,inMinutes 给出了总持续时间中的整分钟数,其中包括作为 "hours" 提供给构造函数的分钟数,并且可以大于 59。
const fastestMarathon = Duration(hours: 2, minutes: 3, seconds: 2);
print(fastestMarathon.inDays); // 0
print(fastestMarathon.inHours); // 2
print(fastestMarathon.inMinutes); // 123
print(fastestMarathon.inSeconds); // 7382
print(fastestMarathon.inMilliseconds); // 7382000
持续时间可以是负数,在这种情况下,从持续时间派生的所有属性也是非正数。
const overDayAgo = Duration(days: -1, hours: -10);
print(overDayAgo.inDays); // -1
print(overDayAgo.inHours); // -34
print(overDayAgo.inMinutes); // -2040
使用属性之一(例如 inDays )以指定时间单位检索 Duration
的整数值。请注意,返回值是向下舍入的。例如,
const aLongWeekend = Duration(hours: 88);
print(aLongWeekend.inDays); // 3
此类提供了一组算术和比较运算符,以及一组用于转换时间单位的常量。
const firstHalf = Duration(minutes: 45); // 00:45:00.000000
const secondHalf = Duration(minutes: 45); // 00:45:00.000000
const overTime = Duration(minutes: 30); // 00:30:00.000000
final maxGameTime = firstHalf + secondHalf + overTime;
print(maxGameTime.inMinutes); // 120
// The duration of the firstHalf and secondHalf is the same, returns 0.
var result = firstHalf.compareTo(secondHalf);
print(result); // 0
// Duration of overTime is shorter than firstHalf, returns < 0.
result = overTime.compareTo(firstHalf);
print(result); // < 0
// Duration of secondHalf is longer than overTime, returns > 0.
result = secondHalf.compareTo(overTime);
print(result); // > 0
也可以看看:
- 实现的类型
相关用法
- Dart Duration.inDays用法及代码示例
- Dart Duration.inMicroseconds用法及代码示例
- Dart Duration.inMinutes用法及代码示例
- Dart Duration.inMilliseconds用法及代码示例
- Dart Duration.inSeconds用法及代码示例
- Dart Duration.inHours用法及代码示例
- Dart Duration构造函数用法及代码示例
- Dart Duration.toString用法及代码示例
- Dart DateTime.toUtc用法及代码示例
- Dart DateTime.minute用法及代码示例
- Dart DateTime.toIso8601String用法及代码示例
- Dart DomStringList.first用法及代码示例
- Dart DateTime.fromMillisecondsSinceEpoch用法及代码示例
- Dart DateTime.add用法及代码示例
- Dart DateTime.isAfter用法及代码示例
- Dart Directory用法及代码示例
- Dart DoubleLinkedQueue.from用法及代码示例
- Dart DateTime用法及代码示例
- Dart DateTime.weekday用法及代码示例
- Dart DomRectList.length用法及代码示例
- Dart DateTime.isAtSameMomentAs用法及代码示例
- Dart DomRectList.first用法及代码示例
- Dart DomStringList.elementAt用法及代码示例
- Dart DateTime.hour用法及代码示例
- Dart DynamicLibraryExtension.lookupFunction用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 Duration class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。