Using datenum for fraction of a second

22 次查看(过去 30 天)
I am looking for a ways to convert some dates into datenum, given their special format. My dates look as follows:
'2017-02-28 21:36:51'
'2017-02-28 21:36:51.5'
'2017-02-28 21:36:52'
'2017-02-28 21:36:52.5'
'2017-02-28 21:36:53'
'2017-02-28 21:36:53.5'
etc. etc. etc.
In other words, the format of the dates alternates, such that every other entry has an additional 500 milliseconds at the end of it. How can I convert these to datenum simultaneously, given their different formats? (or at least, how can I convert dates with .5 to datenum?). I cannot skip or ignore any of this data.
Thanks
  1 个评论
Walter Roberson
Walter Roberson 2017-3-10
Would datetime format instead of datenum format be acceptable?
datenum() tends to be more flexible in format conversion but sometimes datetime() is easier.

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2017-3-10
dates = {'2017-02-28 21:36:51'
'2017-02-28 21:36:51.5'
'2017-02-28 21:36:52'
'2017-02-28 21:36:52.5'
'2017-02-28 21:36:53'
'2017-02-28 21:36:53.5'};
temp = regexprep(dates, ':\d\d$', '$&.0', 'lineanchors');
Now temp is in consistent format
  2 个评论
Bruno Rodriguez
Bruno Rodriguez 2017-3-10
Thank you, that certainly helps to make them consistent. However, I'm still unsure how to apply datenum to such a format. I seem to be getting two different datenum outputs for the first two cases above, but when I convert the second one back to datestr to double check, it still returns 21:36:51, even though it has a .5

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Dates and Time 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by