MATLAB Answers

huda nawaf

separate date from time

Asked by huda nawaf
on 26 Jul 2012

hi,

i have timestamp in my data

such as:

874965478

which contains date and time

what I need is separate date from time

I try this

d=datestr(874965478/86400 + datenum('1/1/1970'))

and get

d =

22-Sep-1997 21:57:58

this result do not what i need, i want the timestamp remain integer but without time just date

can do that?

  0 Comments

Tags

Products

No products are associated with this question.

2 Answers

Answer by per isakson
on 26 Jul 2012
Edited by per isakson
on 26 Jul 2012
 Accepted answer

The function, floor, does it:

    >> floor( 874965478/86400 + datenum('1/1/1970') )
    ans =
          729655

and check the result

    >> datestr( ans, 31 )
    ans =
    1997-09-22 00:00:00
    >> 

This, 729655, is serial date number.

  1 Comment

huda nawaf
on 26 Jul 2012

many thanks


Answer by Star Strider
on 26 Jul 2012

Alternatively, change:

d=datestr(874965478/86400 + datenum('1/1/1970'))

to:

d=datevec(874965478/86400 + datenum('1/1/1970'))

then:

d_date = d(1:3)

This gives you the date as a [YYYY MM DD] vector. You can format it as you like as a string with ‘sprintf’ or other functions.

  4 Comments

huda nawaf
on 26 Jul 2012

many thanks

huda nawaf
on 29 Jul 2012

hi again,

why when I used this timestamp: 9783021091

and use d=datestr(9783021091/86400 + datenum('1/1/1970')); get 05-Jan-2280 09:51:31

while when use d=datestr(874965478/86400 + datenum('1/1/1970'))

get d =

22-Sep-1997 21:57:58

thanks

per isakson
on 29 Jul 2012

You write: "Why", but doesn't say why you question the result.

Your timestamps are seconds after 1/1/1970(?)

In the second case the integer, 874965478, corresponds to approx. 27 years. In the first case the integer, 9783021091, is eleven times larger, i.e. 300 years. The results is plausible.


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today