datenum to UTC?

10 visualizzazioni (ultimi 30 giorni)
MrKoberec
MrKoberec il 25 Ott 2018
Commentato: Peter Perkins il 31 Ott 2018
Hi, I have
10-Oct-2013 15:59:00
and I need UTC time
1381435140
Is there any easy way? (time zone GTM-4)
Thanks!
  1 Commento
Guillaume
Guillaume il 25 Ott 2018
That's not UTC time, that's a Unix Time Stamp
It also appears that your input is a datetime not a datenum.

Accedi per commentare.

Risposta accettata

James Tursa
James Tursa il 25 Ott 2018
Modificato: James Tursa il 25 Ott 2018
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;
or
unix_m4 = seconds((datetime(s) - datetime('01-Jan-1970')) + seconds(4*3600));
or
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 Commento
MrKoberec
MrKoberec il 26 Ott 2018
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.

Accedi per commentare.

Più risposte (1)

jonas
jonas il 25 Ott 2018
Modificato: jonas il 25 Ott 2018
Yes, use datetime instead of datenum.
t = datetime('10-Oct-2013 15:59:00','timezone','-04:00')
t_unix = posixtime(t)
  1 Commento
Peter Perkins
Peter Perkins il 31 Ott 2018
'-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.

Accedi per commentare.

Categorie

Scopri di più su Time Series Objects in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by