How to go from datetime (yyyy:mm: dd hh:mm:ss) to seconds?

7 Ansichten (letzte 30 Tage)
Ilse Frans
Ilse Frans am 4 Jul. 2023
Kommentiert: Peter Perkins am 17 Jul. 2023
I have a timestamp variable with the following output (size: 1207x1):
'2023-06-27 08:31:05'
'2023-06-27 08:31:06'
'2023-06-27 08:31:07'
'2023-06-27 08:31:08'
etc.
How do I turn this into a variable where it is only seconds?
I tried the function datevec, but after every minute the seconds get to zero again, but I want the amount of seconds to continue after a minute.
Thanks in advance!
  4 Kommentare
Stephen23
Stephen23 am 4 Jul. 2023
Bearbeitet: Stephen23 am 5 Jul. 2023
MATLAB does not have a TIME2NUM function. The Predictive Maintenance toolbox has such a function.
The MATLAB approach is to use a DATETIME variable and then call TIMEOFDAY and SECONDS (all of which are actual MATLAB functions):
C = {'2023-06-27 08:31:05';'2023-06-27 08:31:06';'2023-06-27 08:31:07';'2023-06-27 08:31:08'};
T = datetime(C)
T = 4×1 datetime array
27-Jun-2023 08:31:05 27-Jun-2023 08:31:06 27-Jun-2023 08:31:07 27-Jun-2023 08:31:08
V = seconds(timeofday(T))
V = 4×1
30665 30666 30667 30668
Peter Perkins
Peter Perkins am 17 Jul. 2023
Or maybe "seconds since some origin"
C = ["2023-06-27 08:31:05";"2023-06-27 08:31:06";"2023-06-27 08:31:07";"2023-06-27 08:31:08"];
T = datetime(C)
T = 4×1 datetime array
27-Jun-2023 08:31:05 27-Jun-2023 08:31:06 27-Jun-2023 08:31:07 27-Jun-2023 08:31:08
s = T - "1-Jan-2023"; s.Format = 's'
s = 4×1 duration array
1.5323e+07 sec 1.5323e+07 sec 1.5323e+07 sec 1.5323e+07 sec
seconds(s) % as numeric
ans = 4×1
15323465 15323466 15323467 15323468

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Ilse Frans
Ilse Frans am 4 Jul. 2023
Nevermind, tried the function time2num and worked :)

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by