我正在尝试将 DateTime 转换为 Julian 日期并在 Windows 7 下反转它。
public static double ToJulianDate(this DateTime dt) {
return dt.ToOADate() + 2415018.5;
}
public static DateTime Julian2DT(this double julian) {
return DateTime.FromOADate(julian - 2415018.5);
}
当我测试这两个功能时,如下所示
var dt = DateTime.Now;
dt.ToString("yyyy-MM-dd HH:mm:ss.ffffff").Dump();
dt.ToJulianDate().Julian2DT().ToString("yyyy-MM-dd HH:mm:ss.ffffff").Dump();
反转的儒略日期总是与原始 DateTime 值略有不同,相差数百微秒。
是我写了错误的代码还是 Windows 时间系统中存在一些微秒的误差?