How to shift date-time variable to a common start-date/time
Mostrar comentarios más antiguos
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.
Respuesta aceptada
Más respuestas (2)
Katalin
el 19 de Jun. de 2015
2 votos
Try this: shifted_date = datetime(actual_dates) - t_diff
1 comentario
David O'Brien
el 19 de Jun. de 2015
Peter Perkins
el 23 de Jun. de 2015
Editada: Peter Perkins
el 23 de Jun. de 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.
Categorías
Más información sobre Dates and Time en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!