Datetime to string format issue

Hi
I have a datetime array as shown below.
timearray_segmenta =
struct with fields:
start: [2022-09-06T00:00:00 2022-09-16T00:00:00 2022-09-26T00:00:00 2022-10-06T00:00:00 2022-10-16T00:00:00 2022-10-26T00:00:00 ]
stop: [2022-09-15T23:59:59 2022-09-25T23:59:59 2022-10-05T23:59:59 2022-10-15T23:59:59 2022-10-25T23:59:59 2022-11-04T23:59:59 ]
The formate of the date time has to be as shown above, this was achived using:
timearray.Format = 'yyyy-MM-dd''T''HH:mm:ss';
I need to convert this datetime structure as a string, so i am using the following:
K>> datestr(timearray_segmenta.start)
ans =
7×11 char array
'06-Sep-2022'
'16-Sep-2022'
'26-Sep-2022'
'06-Oct-2022'
'16-Oct-2022'
'26-Oct-2022'
'05-Nov-2022'
The formate changes, if i was to reassign the formate i get the following:
datestr(timearray_segmenta.start,timearray.Format )
ans =
7×21 char array
'2022-00-06'T'00:09:00'
'2022-00-16'T'00:09:00'
'2022-00-26'T'00:09:00'
'2022-00-06'T'00:10:00'
'2022-00-16'T'00:10:00'
'2022-00-26'T'00:10:00'
'2022-00-05'T'00:11:00'
What needs to change in my code?

1 Comment

"What needs to change in my code?"
Get rid of deprecated and superfluous DATESTR. Just set the DATETIME format:

Sign in to comment.

 Accepted Answer

Don't use datestr. As its documentation page states, it is not recommended. Use string or char instead.
dt = datetime('now');
dt.Format = 'yyyy-MM-dd''T''HH:mm:ss'
dt = datetime
2022-11-19T13:28:00
s = string(dt)
s = "2022-11-19T13:28:00"

More Answers (2)

>> datetime(start,'InputFormat','yyyy-MM-dd''T''HH:mm:ss')
ans =
datetime
06-Sep-2022
>> datetime(start,'InputFormat','yyyy-MM-dd''T''HH:mm:ss','Format','yyyy-MM-dd''T''HH:mm:ss')
ans =
datetime
2022-09-06T00:00:00
>> string(ans)
ans =
"2022-09-06T00:00:00"
>>
Dharmesh Joshi
Dharmesh Joshi on 20 Nov 2022
Thanks
String(), seems to have worked perfectly?

Categories

Products

Release

R2022a

Community Treasure Hunt

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

Start Hunting!