I am trying to break apart this file I have but the time column has a large number as the time (this is because the time is in 5 minute intervals). As an example 201601010000 (shown in Matlab as 2.0160101000e+11) represents January 1, 2016, 12:00AM or 00:00Hr (24 Hr time). Any help is welcome, thank you.

2 commentaires

Stephen23
Stephen23 le 20 Juin 2018
@Cameron Power: Please upload a sample file by clicking the paperclip button. Several file importing functions correctly import dates without requiring them to be converted to/from a large number, and they are the recommended way to handle dates.
Cameron Power
Cameron Power le 20 Juin 2018
Here is a csv sample

Connectez-vous pour commenter.

 Réponse acceptée

Stephen23
Stephen23 le 20 Juin 2018
Modifié(e) : Stephen23 le 20 Juin 2018

0 votes

Use either readtable or textscan and set the format to specify the date, something like this:
N = number of columns
fmt = repmat('%f',1,N-1);
fmt = ['%{yyyyMMddHHmmss}D',fmt];
Both readtable and textscan contain a useful example under the heading "Read Foreign-Language Dates", you should try those examples and adapt them to your situation.

Plus de réponses (1)

Peter Perkins
Peter Perkins le 5 Juil 2018

0 votes

If you have text, Stephen's advice is good. If you have a number, you can split it into two pieces and use datetime to do at least part of the work:
>> x = 201601010000
x =
201601010000
>> xdate = floor(x/10000)
xdate =
20160101
>> xtime = x - 10000*xdate
xtime =
0
>> datetime(xdate,'ConvertFrom','yyyymmdd')
ans =
datetime
01-Jan-2016 00:00:00

Community Treasure Hunt

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

Start Hunting!

Translated by