【问题标题】:How to get date given only the day of year number in flutter如何仅在颤动中仅给出年份​​中的日期来获取日期
【发布时间】:2020-06-02 13:13:22
【问题描述】:

我对 Flutter 还很陌生。在 android 中,我可以轻松地使用 cal.set(Calendar.DAY_OF_YEAR, number) 设置的 Calendar 类集,它会为特定的 day_of_year 数字返回 date。我怎样才能在 Flutter 中做同样的事情。

在 Android 中,我会这样做

Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_YEAR,1);  //set date using day of year
return cal.getTime(); //2020-01-01

如何在 Flutter 中实现这一点。

【问题讨论】:

标签: android ios date flutter calendar


【解决方案1】:

我只是为了好玩,我通常不做 Dart,如果错了请见谅!

var dayOfYear = 1;
var millisInADay = Duration(days: 1).inMilliseconds; // 86400000    
var millisDayOfYear = dayOfYear * millisInADay;
var millisecondsSinceEpoch = DateTime(DateTime.now().year).millisecondsSinceEpoch;

var dayOfYearDate = DateTime.fromMillisecondsSinceEpoch(millisecondsSinceEpoch + millisDayOfYear);
  • 一年中的第几天 == 1。
  • 当一天有 86400000 毫秒时。
  • 那么那一年有 86400000 毫 (1 x 86400000)。
  • 为一年的第一天创建一个新日期。

  • 将一年中的毫秒数添加到自纪元以来年初的毫秒数。使用自纪元以来的毫秒数创建一个新日期。

参考:

https://api.dart.dev/stable/2.7.1/dart-core/DateTime-class.html

【讨论】:

  • 非常感谢,它成功了。有趣的是,Dart 中 1 月 1 日的 dayOfYear 为 0。所以我的第一个 day_of_year 是 0。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-29
  • 1970-01-01
  • 2017-12-24
  • 1970-01-01
  • 2020-11-29
  • 1970-01-01
相关资源
最近更新 更多