Если вы просто не хотите исправить свой входной файл для последующего использования, вам не обязательно исправлять ввод. Существует несколько способов непосредственного анализа времени с помощью лишних пробелов:
Позвольте time
быть:
time = ['04-July -2017 09:54:31.000';
'04-July -2017 09:54:32.000']
Затем непосредственно проанализировать строковое представление даты и времени в серийный номер MATLAB. число, которое вы можете использовать:
%% get date in [MATLAB date serial number]
formatIn = 'dd-mmm -yyyy HH:MM:SS.FFF' ;
matlabTime = datenum(time,formatIn)
matlabTime =
736880.412858796
736880.41287037
Это последовательное представление времени не так легко читается человеком, но это самая быстрая вещь, которую вы можете получить, если хотите выполнять вычисления с датой / временем.
Если вашцель состоит в том, чтобы просто исправить строку, затем вы можете использовать тот же трюк для считывания значения и точно определить, какой выходной формат вы хотите получить:
%% get date in [string]
formatIn = 'dd-mmm -yyyy HH:MM:SS.FFF' ;
formatOut = 'dd-mmm-yyyy HH:MM:SS.FFF' ;
stringTime = datestr(datenum(time,formatIn),formatOut)
stringTime =
04-Jul-2017 09:54:31.000
04-Jul-2017 09:54:32.000
Если вы хотите использовать новыйdatetime
объектов, формат ввода имеет немного другой синтаксис, но операция примерно такая же:
%% get date in [datetime] objects
formatIn = 'dd-MMM -yyyy HH:mm:ss.SSS' ;
t = datetime(time,'InputFormat',formatIn)
t =
04-Jul-2017 09:54:31
04-Jul-2017 09:54:32
Хотя консоль MATLAB отображает t
в удобочитаемом формате, t
теперь datetime объект. Проверьте документацию, если хотите использовать это.