0

私はこのセル配列を持っています:

    date_hour = '30/07/2012 00:00'
                '30/07/2012 01:00'
                '30/07/2012 02:00'
                '30/07/2012 03:00'
                '30/07/2012 04:00'
                '30/07/2012 05:00'
                '30/07/2012 06:00'
                '30/07/2012 07:00'
                '30/07/2012 08:00'
                '30/07/2012 09:00'
                '30/07/2012 10:00'
                '30/07/2012 11:00'
                '30/07/2012 12:00'
                '30/07/2012 13:00'
                '30/07/2012 14:00'
                '30/07/2012 15:00'
                '30/07/2012 16:00'
                '30/07/2012 17:00'
                '30/07/2012 18:00'
                '30/07/2012 19:00'
                '30/07/2012 20:00'
                '30/07/2012 22:00'
                '30/07/2012 21:00'
                '30/07/2012 23:00'

時間は UTC で与えられます。現地時間が -3 になったら、どうすれば現地時間に変換できますか?

4

2 に答える 2

5

matlabの日付形式は1月1日からの日数であり、時間は小数で0000であるため、matlabの日付形式から3/24を引くだけで済みます。

localDateNum = datenum(date_hour,'dd/mm/yyyy HH:MM') - 3/24;

次に、datestrを使用して、必要に応じて文字列に戻すことができます。

date_hour_local = datestr(localDateNum,'dd/mm/yyyy HH:MM');
于 2012-08-16T14:20:05.873 に答える
1

別の解決策について知らせるために、MATLAB 関数を使用できaddtodateます。

date_local_num = addtodate(datenum(date_hour,'dd/mm/yyyy HH:MM'),-3,'hour');
date_local = datestr(date_local_num,'dd/mm/yyyy HH:MM');

詳細については、次のドキュメントを参照してください。

http://de.mathworks.com/help/matlab/ref/addtodate.html

于 2016-07-08T10:47:09.853 に答える