How to read dates/times with time zone

14 次查看(过去 30 天)
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 个评论
Robert
Robert 2018-4-17
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')

请先登录,再进行评论。

采纳的回答

Robert U
Robert U 2018-4-18
编辑:Robert U 2018-4-18

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 个评论
Robert U
Robert U 2018-4-18
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)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Search Path 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by