How to read dates/times with time zone

5 vues (au cours des 30 derniers jours)
Robert
Robert le 17 Avr 2018
Commenté : Robert le 18 Avr 2018
Hi,
Wondering how to read the following dates/times:
2003-01-16T06:28:00Z
2003-02-16T03:13:00Z
2003-03-16T04:11:07Z
...
Then create 6 columns with that info like:
YYYY mm dd HH MM SS
2003 01 16 06 28 00
2003 02 16 03 13 00
2003 03 16 04 11 07
...
Thank you for your help!
  1 commentaire
Robert
Robert le 17 Avr 2018
Sorry, I forgot to add my example...
t = datetime('2003-01-16T06:28:00Z','TimeZone','local','Format','yyyy-MM-dd''T''HH:mm:ss Z')

Connectez-vous pour commenter.

Réponse acceptée

Robert U
Robert U le 18 Avr 2018
Modifié(e) : Robert U le 18 Avr 2018

Hello Robert:

I assume the original date is given in ISO8601 format. In that case 'Z' means zero offset to UTC+0.

Nevertheless, here is the code to read and convert as you requested:

 t = datetime('2003-01-16T06:28:00Z','TimeZone','local','InputFormat','yyyy-MM-dd''T''HH:mm:ssX');
 tOut = char( datetime(t,'Format','yyyy/MM/DD/HH/mm/ss') );
 cOut = strsplit(tOut,'/');
 strOut = sprintf('YYYY mm dd HH MM SS\n');
 strOut = [strOut,sprintf('%4s %2s %2s %2s %2s %2s\n',cOut{1},cOut{2},cOut{3},cOut{4},cOut{5},cOut{6})];
 disp(strOut)

Kind regards,

Robert

  2 commentaires
Robert U
Robert U le 18 Avr 2018
Or even shorter:
t = datetime('2003-01-16T06:28:00Z','TimeZone','local','InputFormat','yyyy-MM-dd''T''HH:mm:ssX');
tOut = char( datetime(t,'Format','yyyy MM DD HH mm ss') );
strOut = sprintf('YYYY mm dd HH MM SS\n');
strOut = [strOut,tOut];
disp(strOut)
Robert
Robert le 18 Avr 2018
Great, thank you so much!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Search Path dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by