MATLABを使用してUTC時間から文字列への時間変換を支援することを探しています。
2010年10月末に収集されたデータファイルから時間を抽出しようとしています。データファイルにはUTC時間でレポートされていると記載されており、フィールドはミリ秒単位の整数文字列値で、約3.02e11です。これを文字列に変換したいのですが、問題があります。
単位は間違いなくミリ秒単位であることがわかったので、datenum形式と互換性を持たせるために、これを数分の1に変換します。
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月の日付を取得する方法について誰かが提案できますか?