var newHour = 5;
time = time.toLocal();
time = new DateTime(time.year, time.month, time.day, newHour, time.minute, time.second, time.millisecond, time.microsecond);
int myNewHour = 10
int myNewMinute = 8
var time = DateTime.parse("2018-08-16T11:00:00.000Z");
time = time.applyTimeOfDay(hour : myNewHour, minute : myNewMinute);
var updateTime = Jiffy.parse("2018-08-16T11:00:00.000Z").add(hours: 1); // 2018-08-16 12:00:00.000Z
print(updateTime.dateTime); // 2018-08-16 12:30:00.000Z
// also you can format it
print(updateTime.format("yyyy, MMM")); // 2018, Aug
// or use default formats
print(updateTime.yMMMEdjm); // Thu, Aug 16, 2018 12:30 PM
9条答案
按热度按时间txu3uszq1#
曾经讨论过添加一个
update()
方法,该方法只允许修改特定的部分,但看起来并没有实现。eimct9ow2#
现在有了扩展名,你就可以这样做了
093gszye3#
我有个更简单的办法
则“formatedDate”中的XX:XX应为00:00
说明:
formatedDate是一个新的DateTime变量,其内容为newDate减去小时、分钟...
yk9xbfzb4#
我相信这是一个比公认答案更好的解决方案:
fafcakar5#
您可以将Extension Methods与dart一起使用来扩展现有库。
首先通过扩展DateTime对象定义扩展名:
一旦定义了新方法,就可以像调用该对象的已定义方法一样调用它。
在本例中,一旦定义了
applyTimeOfDay()
方法,就可以像这样调用它:f4t66c6m6#
您可以删除当前的小时和分钟,然后添加所需的小时和分钟。
因此,如果您想将时间设置为例如23:59,您可以这样做:
(Note其他时间单位,如秒和毫秒,在这里没有改变)
oogrdqng7#
我在小部件中使用
DateTime
对象的格式化形式(使用DateFormat
)时遇到了一些问题,因为showDatePicker
带来了一个新的DateTime示例,调用setState
对视图没有影响。可能有更好的方法来满足我的问题,但我决定创建我自己的一个,它可以使用
.update
方法更新。此外,不需要使用另一个包来设置日期-时间格式。
raogr8fs8#
您也可以使用这个包Jiffy,通过将DateTime加上或减去来实现这一点。它还考虑闰年和每个月有多少天
eiee3dmh9#
变量新小时= 5;time =到本地的时间();时间=新日期时间(时间.年、时间.月、time.day、新小时、时间.分钟、时间.秒、时间.毫秒、时间.微秒);