我有一个当前的日期时间与followint函数:
String cdate = DateFormat("yyyy-MM-dd HH:mm:ss").format(DateTime.now());
现在我想从当前日期时间中减去1天或24小时。我该怎么做?
yiytaume1#
不要操纵字符串,操纵日期。从文档,改编:
final now = DateTime.now(); final yesterday = now.subtract(const Duration(days: 1));
在需要显示日期之前应用格式设置,而不是之前。
a6b3iqyw2#
日期操作方法由DateTime类提供。请参阅DateTime文档。检查now,add,subtract。下面的代码展示了如何实现你想要的:
DateTime today = DateTime.now(); String cdate = DateFormat("yyyy-MM-dd HH:mm:ss").format(today); DateTime yesterday = today.subtract(Duration(days: 1)); String ydate = DateFormat("yyyy-MM-dd HH:mm:ss").format(yesterday);
jk9hmnmh3#
尝试下面的代码也参考add和subtract的日期时间
void main() { var date = new DateTime.now(); date = DateTime(date.year, date.month, date.day - 1); // or use subtract method also like below //final day= date.subtract(Duration(days: 1)); print(date); print(day); }
使用day-1的结果:
day-1
2022-09-13 00:00:00.000
使用subtract method的结果:
subtract method
2022-09-13 12:52:45.734
44u64gxh4#
final currentDay = DateTime.now(); final yesterday = now.subtract(const Duration(hours: 24));
4条答案
按热度按时间yiytaume1#
不要操纵字符串,操纵日期。从文档,改编:
在需要显示日期之前应用格式设置,而不是之前。
a6b3iqyw2#
日期操作方法由DateTime类提供。请参阅DateTime文档。检查now,add,subtract。
下面的代码展示了如何实现你想要的:
jk9hmnmh3#
尝试下面的代码也参考add和subtract的日期时间
使用
day-1
的结果:使用
subtract method
的结果:44u64gxh4#