You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

以1900-01-01为起始的儒略日(Julian Day)转标准日期时间求助

儒略日(自定义纪元)转标准日期时间方案

核心逻辑

你提到的「儒略日」实际是相对于1900-01-01 00:00:00基准时间的小时偏移量,转换核心为:基准时间 + 偏移小时数,最终格式化输出为%Y-%m-%d %H:%M:%S格式即可。

注意:如果转换结果和预期存在整小时差值,可检查数据源的时区配置,调整基准时间的时区参数即可修正。

多场景实现代码

Python 实现

单值转换

from datetime import datetime, timedelta

base_time = datetime(1900, 1, 1, 0, 0, 0)
offset_hour = 964249
target_time = base_time + timedelta(hours=offset_hour)
# 输出格式化字符串
print(target_time.strftime("%Y-%m-%d %H:%M:%S"))

批量处理TXT数据集

import pandas as pd

# 读取Panoply导出的TXT文件,可根据实际分隔符调整sep参数
df = pd.read_csv("导出的文件路径.txt", sep="\t")
# 假设存储偏移量的列名为julian_date
df["standard_time"] = pd.to_datetime(df["julian_date"], unit="h", origin="1900-01-01 00:00:00")
# 生成指定格式的字符串列
df["standard_time_str"] = df["standard_time"].dt.strftime("%Y-%m-%d %H:%M:%S")

Excel/WPS 实现

假设偏移量存储在A1单元格,输入公式即可完成转换:

=TEXT(DATE(1900,1,1)+A1/24,"yyyy-mm-dd hh:mm:ss")

注意:部分旧版本Excel存在1900年闰年计算bug,如果输出结果比预期多1天,可将公式调整为=TEXT(DATE(1900,1,1)+A1/24-1,"yyyy-mm-dd hh:mm:ss")

R 实现

单值转换

base_time <- as.POSIXct("1900-01-01 00:00:00", tz = "UTC")
offset_hour <- 964249
target_time <- base_time + offset_hour * 3600
# 输出格式化字符串
format(target_time, "%Y-%m-%d %H:%M:%S")

批量处理TXT数据集

library(readr)
library(dplyr)

df <- read_delim("导出的文件路径.txt", delim = "\t")
df <- df %>%
  mutate(
    standard_time = as.POSIXct("1900-01-01 00:00:00", tz = "UTC") + julian_date * 3600,
    standard_time_str = format(standard_time, "%Y-%m-%d %H:%M:%S")
  )

内容的提问来源于stack exchange,提问作者Gzm_93

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:54:06