How to shift date-time variable to a common start-date/time
Ältere Kommentare anzeigen
I have some data formatted as follows:
% Simple example as the "actual_dates" is a large char array.
common_date = datetime(14,1,1,0,0,0) % Define a common start date (01-Jan-0014 00:00:00)
actual_dates = '29-Jan-2014 13:57:30' % This is "char"
Then I run this:
t_diff = actual_dates - common_date % The shift value
and get this weird result:
t_diff = 17532325:57:35
The end goal is to have this:
shifted_date = actual_dates - t_diff
For this particular example, want to have shifted_date = '01-Jan-0014 00:00:00'
How can I fix this? I'm not sure how to convert the 'char' array into a datetime format.
Akzeptierte Antwort
Weitere Antworten (2)
Katalin
am 19 Jun. 2015
2 Stimmen
Try this: shifted_date = datetime(actual_dates) - t_diff
1 Kommentar
David O'Brien
am 19 Jun. 2015
Peter Perkins
am 23 Jun. 2015
Bearbeitet: Peter Perkins
am 23 Jun. 2015
Just for the record, this
>> common_date = datetime(14,1,1,0,0,0)
common_date =
01-Jan-0014 00:00:00
>> actual_dates = '29-Jan-2014 13:57:30'
actual_dates =
29-Jan-2014 13:57:30
>> t_diff = actual_dates - common_date
t_diff =
17532325:57:30
does automatically convert the string (no need to explicitly call datetime on it, although of course it doesn't hurt). It seems a little funny that you are creating a datetime in the year 14 (not 2014), but I'll assume you meant to do that. The result simply says that there are 17.5 million hours between those two dates. This
>> t_diff.Format = 'y'
t_diff =
2000.1 yrs
is probably a more useful format, or, as StarStrider suggested, use the between function to get the difference in calendar units.
Kategorien
Mehr zu Dates and Time finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!