MATLAB Answers

## How to read dates/times with time zone

Asked by Robert

### Robert (view profile)

on 17 Apr 2018
Latest activity Commented on by Robert

### Robert (view profile)

on 18 Apr 2018
Accepted Answer by Robert U

### Robert U (view profile)

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!

Robert

### Robert (view profile)

on 17 Apr 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')

Sign in to comment.

## 1 Answer

### Robert U (view profile)

Answer by Robert U

### Robert U (view profile)

on 18 Apr 2018
Edited by Robert U

### Robert U (view profile)

on 18 Apr 2018
Accepted Answer

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

Robert U

### Robert U (view profile)

on 18 Apr 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 (view profile)

on 18 Apr 2018
Great, thank you so much!

Sign in to comment.