# How to set mmmm dd, yyyy as per our choice in the datestr command?

3 views (last 30 days)
Megha on 11 Aug 2019
Edited: dpb on 11 Aug 2019
How to set mmmm dd, yyyy as per our choice in the following command?
datestr(hours(50),'mmmm dd, yyyy HH:MM:SS')
It is normally taking:
'January 02, 0000 02:00:00'
I wish to get:
'September 02, 2017 02:00:00'
as my o/p.
Can anyone help!

KALYAN ACHARJYA on 11 Aug 2019
Edited: KALYAN ACHARJYA on 11 Aug 2019
>> datestr(years(2019),'mmmm dd, yyyy HH:MM:SS')
ans =
'December 30, 2018 14:34:48'
For any other format please check here
Megha on 11 Aug 2019
ok let me explain other way round!
I only have time in hours like 20, 30, 40, 50... and i wish to convert that hours using
datestr(hours(50),'mmmm dd, yyyy HH:MM:SS')
to obtain
'September 02, 2017 02:00:00'
So is there any way to set specific year and month instead?

dpb on 11 Aug 2019
datestr(datetime(2017,9,2,2,0,0))
Megha on 11 Aug 2019
ok let me explain other way round!
I only have time in hours like 20, 30, 40, 50... and i wish to convert that hours using
datestr(hours(50),'mmmm dd, yyyy HH:MM:SS')
to obtain
'September 02, 2017 02:00:00'
So is there any way to set specific year and month instead?
dpb on 11 Aug 2019
Edited: dpb on 11 Aug 2019
Well, not without some reference point, no. 50 hours all by itself is only a duration--how is it to know what to be referenced/correlated to? With the arbitrary and a priori knowledge that 50 hours from that point is to be 0200 on the second day of September of the given year, then sure:
datestr(datetime(2017,9,0,50,0,0))
datetime will automagically roll-over hours based on calendar--but it has to have a reference point...and 0 doesn't work well; it has to be a date within the epoch.
So, something like
>> T0=datetime(2017,9,0);
>> T0+hours(20:10:50).'
ans =
4×1 datetime array
31-Aug-2017 20:00:00
01-Sep-2017 06:00:00
01-Sep-2017 16:00:00
02-Sep-2017 02:00:00
>>
might be more amenable to your wishes.