如何在Dart或Flutter中将日期转换为儒略日期?

时间:2018-09-18 08:22:59

标签: dart flutter

我需要将数据作为儒略日期发送到大型机。但是我不确定如何在Flutter或Dart中做到这一点。有一个插件,但似乎与Dart2不兼容。那么将日期转换为儒略日期的通用版本是什么?

1 个答案:

答案 0 :(得分:1)

有许多packages可以为您提供帮助,但是我个人并不熟悉它们。 使用Dart中的DateTimeDuration类可以轻松计算出该值,例如:

// Julian day zero started at noon, November 24, 4714 BC
// in the proleptic Gregorian calendar. 
// (Since 1 BC is year 0, we use -4713 for the year here)
final julianEpoch = DateTime.utc(-4713, 11, 24, 12, 0, 0);
int julianDayNumber(DateTime date) =>
    date.difference(julianEpoch).inDays;
double julianDay(DateTime date) =>
    date.difference(julianEpoch).inSeconds / Duration.secondsPerDay;
DateTime dateFromJulianDay(num julianDay) => 
    julianEpoch + Duration(milliseconds: (julianDay * Duration.milliSecondsPerDay).floor());
double modifiedJulianDay(DateTime date) => julianDay(date) - 2400000.5;