Azzera filtri
Azzera filtri

Using datenum for fraction of a second

22 visualizzazioni (ultimi 30 giorni)
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 Commento
Walter Roberson
Walter Roberson il 10 Mar 2017
Would datetime format instead of datenum format be acceptable?
datenum() tends to be more flexible in format conversion but sometimes datetime() is easier.

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 10 Mar 2017
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 Commenti
Bruno Rodriguez
Bruno Rodriguez il 10 Mar 2017
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
Walter Roberson
Walter Roberson il 11 Mar 2017
datestr(datenum(temp), 'YYYY-mm-DD hh:MM:ss.fff')

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Dates and Time in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by