MATLAB Answers

how can I convert EST time to GMt time?

43 views (last 30 days)
Riyadh Muttaleb
Riyadh Muttaleb on 26 Feb 2018
Commented: Meade on 1 Mar 2018
I have series of datevec (about 1000) in EST time zone that I would like to convert them to GMT, any help,
Thanks in advance,


Sign in to comment.

Answers (2)

Meade on 26 Feb 2018
Try using the 'TimeZone' property in the datetime function to re-interpret the input time in a new time zone.

  1 Comment

Riyadh Muttaleb
Riyadh Muttaleb on 26 Feb 2018
Thank you for your response, I have matrix of time (series) not one value

Sign in to comment.

Peter Perkins
Peter Perkins on 28 Feb 2018
Unless you are using a version of MATLAB prior to R2014b, you probably should not be using datevecs. Convert them to datetimes.
>> dv = [2018,2,28,9,16,34; 2018,2,28,9,16,49;2018,2,28,9,17,04]
dv =
2018 2 28 9 16 34
2018 2 28 9 16 49
2018 2 28 9 17 4
>> dt = datetime(dv,'TimeZone','America/New_York','Format','dd-MMM-uuuu HH:mm:ss z')
dt =
3×1 datetime array
28-Feb-2018 09:16:34 EST
28-Feb-2018 09:16:49 EST
28-Feb-2018 09:17:04 EST
>> dt.TimeZone = 'UTC'
dt =
3×1 datetime array
28-Feb-2018 14:16:34 UTC
28-Feb-2018 14:16:49 UTC
28-Feb-2018 14:17:04 UTC


Meade on 28 Feb 2018
That's a good tip! That looks like the best answer vs a messy loop of datestr calls.
Follow up Q:
Does datetime do lazy format parsing on the fly as well? One thing I like about datestr is that I can try to infer the format of the date if I don't know it a priori.
Peter Perkins
Peter Perkins on 1 Mar 2018
datetime does recognize some common formats. One of the problems with datenum/datestr/datevec was that they guess too much and sometimes get it wrong, silently.
Most common example is 01/02/2018. Because that's so common, datetime has some logic for that case based on your locale are and whether you also have, for example, 01/15/2018. So for me, in the US, it guesses month/day:
>> datetime('01/02/2018')
Warning: Successfully converted the text to datetime using the format 'MM/dd/uuuu', but the format is ambiguous and
could also be 'dd/MM/uuuu'. To create datetimes from text with a specific format call:
> In guessFormat (line 66)
In datetime (line 631)
ans =
But this case is unambiguous:
>> datetime({'01/02/2018' '01/15/2018'})
ans =
1×2 datetime array
02-Jan-2018 15-Jan-2018
Meade on 1 Mar 2018
Thanks for the extra detail, I'll keep datetime in mind as I revamp processes.
I work with lots of data downstream of a workflow that doesn't adhere rigorously to a single format (e.g. ISO-8601) and in turn, I'll (cautiously) take all the help I can get.

Sign in to comment.

Sign in to answer this question.