datenum to UTC?

38 ビュー (過去 30 日間)
MrKoberec 2018 年 10 月 25 日
コメント済み: Peter Perkins 2018 年 10 月 31 日
Hi, I have
10-Oct-2013 15:59:00
and I need UTC time
Is there any easy way? (time zone GTM-4)
  1 件のコメント
Guillaume 2018 年 10 月 25 日
That's not UTC time, that's a Unix Time Stamp
It also appears that your input is a datetime not a datenum.



James Tursa
James Tursa 2018 年 10 月 25 日
編集済み: James Tursa 2018 年 10 月 25 日
Are you just looking for how to convert from the former to the latter? E.g.,
s = '10-Oct-2013 15:59:00';
unix_m4 = (datenum(s) - datenum('01-Jan-1970'))*86400 + 4*3600;
unix_m4 = seconds((datetime(s) - datetime('01-Jan-1970')) + seconds(4*3600));
unix_m4 = seconds(datetime(s,'timezone','-4') - datetime('01-Jan-1970','timezone','UTC'));
This result isn't called UTC btw, it is called Unix time:
  1 件のコメント
MrKoberec 2018 年 10 月 26 日
Thank you, James. Your first suggestion did the job (thank you for including the timezone). I'm using an old version of Matlab (long story) and it does not know the datetime. Sorry I forgot to mention this. Thank you also for the link. I understand it better now.


その他の回答 (1 件)

jonas 2018 年 10 月 25 日
編集済み: jonas 2018 年 10 月 25 日
Yes, use datetime instead of datenum.
t = datetime('10-Oct-2013 15:59:00','timezone','-04:00')
t_unix = posixtime(t)
  1 件のコメント
Peter Perkins
Peter Perkins 2018 年 10 月 31 日
'-04:00' is a valid time zone, but perhaps a little dangerous. It's a time zone that does not observe4 DST. If the OP is in, say, Boston, then that would give the wrong answer for 10-Nov. Something like 'America/New_York' is probably the right choice.


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by