Flutter 在Dart中将分钟转换为年、月、日、小时、分钟
我得到了一个整数,时间很长,例如:Flutter 在Dart中将分钟转换为年、月、日、小时、分钟,flutter,dart,Flutter,Dart,我得到了一个整数,时间很长,例如: int minutes = 1000000 我想把它转换成一个字符串,格式包括:年、月、日、小时和分钟 大概是这样的: (下面的字符串示例与1000000 min不对应,只是为了查看格式) 我一直在寻找是否可以用持续时间解决它,但它不允许数月或数年。我也尝试过比较日期时间,但我找不到合适的答案。一般来说,处理日期时间可能很困难。一个简单的解决方案是将持续时间添加到“零”DateTime,并使用DateTime.minute等获取值:例如 const分钟=10
int minutes = 1000000
我想把它转换成一个字符串,格式包括:年、月、日、小时和分钟
大概是这样的:
(下面的字符串示例与1000000 min不对应,只是为了查看格式)
我一直在寻找是否可以用
持续时间解决它,但它不允许数月或数年。我也尝试过比较日期时间,但我找不到合适的答案。一般来说,处理日期时间可能很困难。一个简单的解决方案是将持续时间添加到“零”DateTime
,并使用DateTime.minute
等获取值:例如
const分钟=100000;
最终持续时间=持续时间(分钟:分钟);
最终零=日期时间();
最终日期时间=零。添加(持续时间);
//然后您可以使用:
dateTime.minute//将介于0和59之间
dateTime.hour//将介于0和23之间
小心,日和月从1开始,而不是从0开始
但是,这只是将分钟
*60秒添加到日期时间
,这可能是您想要的,也可能不是您想要的。例如,你应该考虑一年是否正好等于365天,或者你是否考虑闰年(或闰秒),你在哪个时区评价这个,等等?
如果您对“一年是12个月”、“一个月是30天”等定义感到满意,那么您可能更喜欢手动解决方案:
const timeInMinutes=1000000;
最终分钟数=时间分钟数%60;
最后小时=((timeInMinutes-minutes)/60)%24;
//等
或者,在pub.dev上查看duration
包:
它似乎做了一些类似于您想要做的事情唯一的方法是使用持续时间
并在天-月和天-年之间手动转换。您想要的实际上是不可能的,因为月和年的大小取决于您开始计算的日期。这两种解决方案对我的案例都很有用。一个小细节,以防你想从你的答案中纠正它:日和月从1开始,而不是日和年。非常感谢。啊,是的,好地方:-)
String time = '3 years, 2 month, 21 days, 13 hours, and 45 minutes'