How to add seconds to a HH:mm DateTime array ?

125 Ansichten (letzte 30 Tage)
Douglas Leaffer
Douglas Leaffer am 6 Jun. 2023
Kommentiert: Douglas Leaffer am 6 Jun. 2023
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 Kommentar
Douglas Leaffer
Douglas Leaffer am 6 Jun. 2023
Thank you. Seems I was able to simply click on the timetable in the workspace and then in the Editor window, select (highlight) the column of datetime, then in thwe View tab in the menu select Date/Time Format MM/dd/yyyy HH:mm:ss and MATLAB added :00 seconds to each time row, which is what I needed. Regards

Melden Sie sich an, um zu kommentieren.

Antworten (3)

Nikhil
Nikhil am 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;

Les Beckham
Les Beckham am 6 Jun. 2023
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 = datetime
15-Apr-2016 01:00:00
datetimeArray.Format
ans = 'dd-MMM-uuuu HH:mm:ss'

Steven Lord
Steven Lord am 6 Jun. 2023
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 = datetime
06-Jun-2023 18:57:30
dt.Format = 'MM/dd/yyyy HH:mm' % Change the format so seconds aren't included
dt = datetime
06/06/2023 18:57
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 = datetime
06/06/2023 18:58
dt2 == dt % false
ans = logical
0
Or we can add seconds to the display, leaving the new value the same as the previous value.
dt3 = dt
dt3 = datetime
06/06/2023 18:57
dt3.Format = dt3.Format + ":ss" % Change the display format to include seconds again
dt3 = datetime
06/06/2023 18:57:30
dt3 == dt % true
ans = logical
1

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Produkte


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by