1970 matla 时间_关于matlab:UTC到字符串的转换时间
我正在尋找?guī)椭褂肕ATLAB將時間從UTC時間轉(zhuǎn)換為字符串的時間。
我正在嘗試從2010年10月底收集的數(shù)據(jù)文件中提取時間。
數(shù)據(jù)文件說它以UTC時間報告,該字段是一個整數(shù)字符串值(以毫秒為單位),大約為3.02e11。我想將其轉(zhuǎn)換為字符串,但遇到了一些麻煩。
我發(fā)現(xiàn)單位絕對是毫秒,因此我將其轉(zhuǎn)換為幾天的一部分,以便與datenum格式兼容。
如果數(shù)據(jù)是在10月底(例如2010年10月31日)收集的,那么我可以猜得出我會得到什么樣的數(shù)字。我認為2001年1月1日將是一個很好的紀(jì)元,并計算出我可能得到的數(shù)字(以天為單位):
suspectedDate = datenum('October 31, 2010')
suspectedEpoch = datenum('January 1, 2001')
suspectedTimeInDays = suspectedDate - suspectedEpoch
結(jié)果是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格式嗎?有人可以提供有關(guān)如何從3.02e11震級數(shù)獲取十月日期的建議嗎?
今天的Unix時間約為13e11,以1970年以來的毫秒數(shù)為單位。
如果您的時間約為3e11,則可能是從2000年開始。
>> time_unix = 1339116554872; % example time
>> time_reference = datenum('1970', 'yyyy');
>> time_matlab = time_reference + time_unix / 8.64e7;
>> time_matlab_string = datestr(time_matlab, 'yyyymmdd HH:MM:SS.FFF')
time_matlab_string =
20120608 00:49:14.872
筆記:
1)如果您的時間是從2000年開始,則將1970更改為2000;
2)參見matlab時間的定義。
3)8.64e7是一天中的毫秒數(shù)。
4)Matlab不應(yīng)用任何時區(qū)偏移,因此結(jié)果是相同的UTC時間。
5)向后轉(zhuǎn)換的示例:
>> matlab_time = now;
>> unix_time = round(8.64e7 * (matlab_time - datenum('1970', 'yyyy')))
unix_time =
1339118367664
我從來沒有找到一個明確的答案,所以我將您的答案標(biāo)記為最接近的答案。
@Steve,我想您最好的方法是詢問此值代表創(chuàng)建此數(shù)據(jù)的人員。 如果以毫秒為單位,則您有3.02e11 / 8.64e7 / 365 = 9.5764年,如果數(shù)據(jù)是在2010-10-31真正收集的,則不會提供任何線索
您不能只是彌補自己的時代。同樣,datenum以天為單位返回值。因此,您與數(shù)學(xué)的親密關(guān)系只是一個巧合。
原來是
>> datenum('Jan-1-0000')
ans =
1
和
>> datenum('Jan-1-0001')
ans =
367
因此,自0000年1月1日起,Matlab應(yīng)該在幾天之內(nèi)就可以歸還。(不是錯別字)
但是,我會仔細查看這個3.02e11數(shù)字,并確切地了解它的含義。我很確定這不是標(biāo)準(zhǔn)的Unix UTC,距離1970年1月1日應(yīng)該是幾秒鐘了。它太大了。格林尼治標(biāo)準(zhǔn)時間(GMT)附近:格林威治標(biāo)準(zhǔn)時間11540年1月1日,星期一。
你絕對是對的。 我肯定知道數(shù)字中的LSB是毫秒,因此我們可以除以1000得到秒。 然后看來日期是2001年左右的某個時間。然后的問題是,提到4月還是4個月的轉(zhuǎn)移是否有意義。
從數(shù)學(xué)上看,整數(shù)是毫秒是令人懷疑的。 也許值得進一步研究這個數(shù)字的含義。 我認為今年四月的事情是巧合和追趕鵝。
總結(jié)
以上是生活随笔為你收集整理的1970 matla 时间_关于matlab:UTC到字符串的转换时间的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vue项目接口地址暴露_vue项目打包后
- 下一篇: matlab人脸追踪,求大神帮助我这个菜