将HH:MM:SS格式的时间秒四舍五入到最接近的分钟



例如:Sunset-Sunrise.org提供HH:MM:SS格式的日落/日出时间。

给定一个时间,例如12:53:57,我想将秒四舍五入到12:54:00。请告知。

舍入的一般技术是添加要舍入的单位的一半,然后截断。例如,如果要将一个整数四舍五入到最接近的十位,可以加5并放弃一位的数字:((x + 5) ~/ 10) * 10

同样的技术有时也适用。您可以首先将HH:MM:SS字符串解析为DateTime对象。然后,要将DateTime四舍五入到最接近的分钟,您可以添加30秒并复制除秒(和子秒(之外的所有结果字段:

DateTime roundToMinute(DateTime dateTime) {
dateTime = dateTime.add(const Duration(seconds: 30));
return (dateTime.isUtc ? DateTime.utc : DateTime.new)(
dateTime.year,
dateTime.month,
dateTime.day,
dateTime.hour,
dateTime.minute,
);
}

您可以使用date_time_fromat包

来自文档

final timeOffset = dateTime.subtract(Duration(hours: 6, minutes: 45));
// 7 hours
print(DateTimeFormat.relative(timeOffset));
// 6 hours
print(DateTimeFormat.relative(timeOffset, round: false));

这是URL

最新更新