Date time conversion fail

조회 수: 2(최근 30일)
Karel Starý
Karel Starý 2022년 8월 29일
답변: Steven Lord 2022년 8월 29일
Hello all,
I would like to conver a time to num format so i can do some basic math on it and then I wold like to format t back to day time format.
TimeFormat = 'yyyymmddHHMMSS';
st_file=cell(1,1);%Memory prealocation
t = w_files{2,1}(1,"time") %I am pulling a time from my data: 2022-08-08 10:18:12.000
t =
2022-08-08 10:18:12.000
t = table2array(t)%Converting it to cell because datestr does not work as it is right now
t =
2022-08-08 10:18:12.000
t = datestr(t,TimeFormat);%Making it a str
t =
t = datetime(t,"InputFormat",TimeFormat)%Changing it back to date time format
t =
08-Oct-2020 08:22:00
Is this how is the sotware intended to work? Where am I making a mistake and how can I avoid it in the future. Thanks!

채택된 답변

Karim 2022년 8월 29일
From the looks of it, you need to change the months (M) and minutes (m) symbols in your time format to convert the string into expected datetime. See below:
TimeFormat = 'yyyyMMddHHmmSS';
t = "20220808101812"
t = "20220808101812"
t = datetime(t,"InputFormat",TimeFormat)
t = datetime
08-Aug-2022 10:18:00
  댓글 수: 2
Walter Roberson
Walter Roberson 2022년 8월 29일
datetime() was written using ISO standard codes for date and time. datestr() is older than the ISO standard.

댓글을 달려면 로그인하십시오.

추가 답변(1개)

Steven Lord
Steven Lord 2022년 8월 29일
I would like to conver a time to num format so i can do some basic math on it
What math do you want to do to the time data? There may be a way to avoid converting from time to number and back. For example:
T = datetime('today')
T = datetime
nextMonth = T + calmonths(1)
nextMonth = datetime
startOfThisMonth = dateshift(T, 'start', 'month')
startOfThisMonth = datetime





Community Treasure Hunt

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

Start Hunting!

Translated by