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 个评论

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

请先登录,再进行评论。

 采纳的回答

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"

更多回答(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 2022-11-20
Thanks
String(), seems to have worked perfectly?

类别

帮助中心File Exchange 中查找有关 Dates and Time 的更多信息

产品

版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by