【发布时间】:2019-02-22 05:25:03
【问题描述】:
我需要将数据作为 Julian 日期发送到大型机。但我不确定如何在 Flutter 或 Dart 中做到这一点。有一个插件,但似乎与 Dart2 不兼容。那么将日期转换为儒略日期的通用版本是什么?
【问题讨论】:
我需要将数据作为 Julian 日期发送到大型机。但我不确定如何在 Flutter 或 Dart 中做到这一点。有一个插件,但似乎与 Dart2 不兼容。那么将日期转换为儒略日期的通用版本是什么?
【问题讨论】:
有许多packages 可能对您有所帮助,但我个人并不熟悉它们。
使用 Dart 中的 DateTime 和 Duration 类很容易计算,例如:
// 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;
【讨论】:
julianEpoch 创建为UTC DateTime?如果寻找date 将是非UTC,那么DST 时间呢?