如何在颤动中仅给出一年中的第几天

How to get date given only the day of year number in flutter

我对 flutter 还很陌生。在 android 中,我可以轻松地使用 Calendar class 集,使用 cal.set(Calendar.DAY_OF_YEAR, number) 并且它将 return date 用于特定的 day_of_year 数字。我怎样才能在 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 中实现它。

我只是为了好玩才试了一下,我通常不玩 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