我有一个简单的应用程序,我可以选择一个日期和时间:
这两个字段都返回DateTime对象。我正在寻找的是一个很好的实践,将日期和时间组合到一个新的DateTime对象中。
我所做的就是创建一个函数:
void combineDateAndTime({int? year, int? month, int? day, int? hour, int? min, int? sec}) {
if (year != null) {
dt = DateTime(
year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.millisecond, dt.microsecond);
}
if (month != null) {
dt = DateTime(
dt.year, month, dt.day, dt.hour, dt.minute, dt.second, dt.millisecond, dt.microsecond);
}
if (day != null) {
dt = DateTime(
dt.year, dt.month, day, dt.hour, dt.minute, dt.second, dt.millisecond, dt.microsecond);
}
if (hour != null) {
dt = DateTime(
dt.year, dt.month, dt.day, hour, dt.minute, dt.second, dt.millisecond, dt.microsecond);
}
if (min != null) {
dt = DateTime(
dt.year, dt.month, dt.day, dt.hour, min, dt.second, dt.millisecond, dt.microsecond);
}
if (sec != null) {
dt = DateTime(
dt.year, dt.month, dt.day, dt.hour, sec, dt.second, dt.millisecond, dt.microsecond);
}
}
通过选择一个日期,我调用函数:
combineDateAndTime(day: date.day, month: date.month, year: date.year);
选择时间:
combineDateAndTime(hour: date.hour, min: date.minute);
但我觉得应该有更好的解决办法。
2条答案
按热度按时间ryevplcw1#
您可以将
combineDateAndTime
更改为以下内容,而不是所有if
条件:olqngx592#
当您取得Date时,请将它加入至DateTime变数,如下所示:
然后,当您获得时间时,将其添加到变量中,如下所示: