How to add seconds to a HH:mm DateTime array ?
Show older comments
How do I add seconds as: ss = 00 to a datetime array of the form MM/dd/YYYY HH:mm: 04/15/2016 01:00 as an example
1 Comment
Douglas Leaffer
on 6 Jun 2023
Answers (3)
Nikhil
on 6 Jun 2023
Hello Douglas,
Try this:
% Original datetime array
datetimeArray = datetime('04/15/2016 01:00', 'InputFormat', 'MM/dd/yyyy HH:mm');
% Create an array of seconds (all zeros in this case)
secondsArray = seconds(zeros(size(datetimeArray)));
% Add the seconds to the datetime array
datetimeArrayWithSeconds = datetimeArray + secondsArray;
datetime objects always have a seconds field. If you don't set it, it will already be zero by default, so you don't need to "add" anything. Also, Matlab displays the seconds by default. See example below.
datetimeArray = datetime('04/15/2016 01:00', 'InputFormat', 'MM/dd/yyyy HH:mm')
datetimeArray.Format
Do you want to actually add seconds to the value (changing the time) or do you want to add seconds to the display (leaving the time alone)? Let's create some sample data.
dt = datetime('now') % Default display format includes seconds
dt.Format = 'MM/dd/yyyy HH:mm' % Change the format so seconds aren't included
We can add seconds to the time, making the new value not the same as the previous value
dt2 = dt + seconds(30) % change the value
dt2 == dt % false
Or we can add seconds to the display, leaving the new value the same as the previous value.
dt3 = dt
dt3.Format = dt3.Format + ":ss" % Change the display format to include seconds again
dt3 == dt % true
Categories
Find more on Dates and Time in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!