【问题标题】:How to convert date to Julian date in Dart or Flutter?如何在 Dart 或 Flutter 中将日期转换为儒略日期?
【发布时间】:2019-02-22 05:25:03
【问题描述】:

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

【问题讨论】:

    标签: dart flutter


    【解决方案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;
    

    【讨论】:

    • 为什么将julianEpoch 创建为UTC DateTime?如果寻找date 将是非UTC,那么DST 时间呢?
    猜你喜欢
    • 2020-01-11
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 2013-07-21
    • 2015-11-08
    • 1970-01-01
    相关资源
    最近更新 更多