how can I convert EST time to GMt time?

8 visualizaciones (últimos 30 días)
Riyadh Muttaleb
Riyadh Muttaleb el 26 de Feb. de 2018
Comentada: Meade el 1 de Mzo. de 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,
Riyadh

Respuestas (2)

Meade
Meade el 26 de Feb. de 2018
Try using the 'TimeZone' property in the datetime function to re-interpret the input time in a new time zone.
Best,
  1 comentario
Riyadh Muttaleb
Riyadh Muttaleb el 26 de Feb. de 2018
Thank you for your response, I have matrix of time (series) not one value

Iniciar sesión para comentar.


Peter Perkins
Peter Perkins el 28 de Feb. de 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
  3 comentarios
Peter Perkins
Peter Perkins el 1 de Mzo. de 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:
datetime(textinput,'InputFormat',infmt)
> In guessFormat (line 66)
In datetime (line 631)
ans =
datetime
02-Jan-2018
But this case is unambiguous:
>> datetime({'01/02/2018' '01/15/2018'})
ans =
1×2 datetime array
02-Jan-2018 15-Jan-2018
Meade
Meade el 1 de Mzo. de 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.

Iniciar sesión para comentar.

Categorías

Más información sobre Dates and Time en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by