Specific timestamp to date format using datetime

22 views (last 30 days)
I have data with a certain timestamp, being yyyymmddHHMM and I want to convert this to time format in matlab:
For example:
Given a timestamp of 201502171000 I want to get 2015-02-17 10:00.
PS: I have to manage a lot of data for a given time unit and my aim is to identify my measurements for that certain time unit. And thats why I thought that time format could be helpful.

Accepted Answer

Star Strider
Star Strider on 27 Mar 2017
This works:
T = 201502171000;
str = num2str(T, '%11d');
dn = datenum(str, 'yyyymmddHHMM');
ds = datestr(dn, 'yyyy-mm-dd HH:MM') % ‘Legacy’ Functions
dt = datetime(str, 'InputFormat','yyyyMMddHHmm', 'Format','yyyy-MM-dd HH:mm') % ‘datetime’ Function
I do not know if you are starting with an integer or string, so I included the conversion from integer to string, necessary for the datetime function.
  2 Comments
André Bernal García
André Bernal García on 28 Mar 2017
Thanks! Now I have another problem, I have the time array and a data array.
My purpose is to make a loop as:
For each hour ( the data time is hourly), so for 2015-02-17 10:00, 2015-02-17 11:00 and so on
Use the values of the array UP ( in the picture) to do certain mathematical operations
Thanks for all in advance!
Star Strider
Star Strider on 28 Mar 2017
My pleasure.
I am not certain what you want to do.
If you want to put your datetime object and your data together, I would use the table function, since it is designed for that. Another option is a cell array.

Sign in to comment.

More Answers (1)

Peter Perkins
Peter Perkins on 27 Mar 2017
Assuming you have strings, not numbers, you've kind of answered the question yourself, except for m vs. M:
>> datetime('201502171000','InputFormat','yyyyMMddHHmm')
ans =
datetime
17-Feb-2015 10:00:00

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!