dart - 如何在 Dart 的 DateTime 中获取 N 天前?
问题描述
有subtract()
方法,但文档说它不知道夏令时,这使得它在这种情况下几乎没有用,或者在任何其他情况下,除非程序员不知道 24 小时内有多少毫秒。
我在想两种方法:
获取当月的日期,然后从中减去 N,如果小于 1,则在适当的情况下减去月份和年份,并将日期设置为任何月份的最后一天
或者
从当天的中午减去 N 天,然后得到当天的开始日期
有没有更简单/更好的方法来做到这一点?
解决方案
您可能应该尝试将两个 DateTimes 都转换为 UTC(标准化),然后调用 difference()。这会将其转换为一个不错的、简单的持续时间,您可以根据需要将其转换为小时、天、月或其他任何时间。
DateTime one = somedatetime.toUtc();
DateTime two = someotherdatetime.toUtc();
Duration diff = one.difference(two);
//Then just convert...
return diff.inDays;
推荐阅读
- java - JNA/WinAPI。模拟鼠标单击会移动鼠标光标并且不会将其返回到起始位置
- python-3.x - 为什么在while循环和if语句中显示错误
- laravel - 如何在我的 laravel 应用程序(已由 cpanel 部署)中更改 public_path 的名称?
- python - 我在 python 3.x 中得到了不止一个输出
- c++ - vscode 无法打开源文件“iostream”
- laravel - 如何在 laravel 6 验证中使名称字段唯一
- java - org.springframework.web.servlet.DispatcherServlet noHandlerFound 警告:GET /HelloWorld/helloweb 没有映射
- html - 如何在我的网站 html 中选择此 DIV?
- android - 无法更改对话框背景颜色Android
- visual-studio-code - 如何在 macOS 上打开 VS Code 上的自动搜索?