我正在寻找帮助使用 MATLAB 从 UTC 时间到字符串的时间转换。
我正在尝试从 2010 年 10 月末收集的数据文件中提取时间。数据文件说它以 UTC 时间报告,并且该字段是以毫秒为单位的整数字符串值,大约为 3.02e11。我想将其转换为字符串,但遇到了一些麻烦。
我发现这些单位绝对是毫秒,所以我将其转换为天数以与 datenum 格式兼容。
如果数据是在 10 月底(比如 2010 年 10 月 31 日)收集的,那么我可以猜测我可能会得到什么样的数字。我认为 2001 年 1 月 1 日将是一个很好的时期,并计算了我可能得到的数字(以天为单位):
suspectedDate = datenum('October 31, 2010')
suspectedEpoch = datenum('January 1, 2001')
suspectedTimeInDays = suspectedDate - suspectedEpoch
结果为3590。
但是,我的实际时间(以天为单位)得出以下代码
actualTime = 3.02e11
actualTimeInDays = 3.02e11/1000/24/3600
作为3495.4。
这令人不安,因为差异仅为 94.6——不是一整年。这意味着文件的文档有误,或者时代接近 2001 年 4 月 1 日至 5 日:
calculatedEpoch = suspectedDate - actualTimeInDays
calculatedEpochStr = datestr(calculatedEpoch)
或者,如果纪元是 2001 年 1 月 1 日,那么文件中的实际日期是从 7 月底开始。
ifEpochIsJanuaryDate = suspectedEpoch + actualTimeInDays
ifEpochIsJanuaryDateStr = datestr(ifEpochIsJanuaryDate)
这是一种已知的 UTC 格式吗?任何人都可以就如何从 3.02e11 震级数获得 10 月日期提供建议吗?