如何将MJD时间转换为仅含日期的UTC时间以用于绘图
解决MJD转UTC年/月/日日期列表的问题
用astropy处理时,不用直接依赖.iso属性(它默认包含时分秒),可以通过两种更直接的方式提取纯日期:
方法一:使用
strftime自定义格式
astropy的Time对象支持strftime方法,能直接按你需要的格式输出日期,还能指定分隔符:from astropy.time import Time # 你的MJD时间列表 mjd_data = [58900, 58901, 58902] # 创建UTC时间对象 utc_times = Time(mjd_data, format='mjd', scale='utc') # 生成仅含年/月/日的日期列表 date_list = [t.strftime('%Y/%m/%d') for t in utc_times]这里
%Y/%m/%d会输出类似2020/01/01的格式,完全符合你的需求。方法二:截取
.iso属性的日期部分
如果习惯用.iso,可以直接截取前10位(.iso输出格式是YYYY-MM-DD HH:MM:SS),再替换分隔符:date_list = [t.iso[:10].replace('-', '/') for t in utc_times]这种方式更简洁,但灵活性不如
strftime。
注意一定要指定scale='utc',确保转换后的时间是UTC标准,避免时区偏差。生成的date_list可以直接用作绘图的X轴数据。
内容的提问来源于stack exchange,提问作者Federica Giacchino
相关产品推荐
相关产品推荐

