Why aren't my locale times converted to UTC time?

1 visualización (últimos 30 días)
Javier
Javier el 20 de Abr. de 2018
Comentada: Peter Perkins el 26 de Abr. de 2018
Hello all,
I would like to convert some dates that are taken with the Amsterdam TimeZone into UTC TimeZone, reading Matlab doc I should use datetime combined wit the the TimeZone option. I have done so, but my time once converted keeps staying in the Amsterdam local time, I know that it should be two hours less in UTC.
Here below the proccess I use, myDatesLocal are Amsterdam timezone based, so array b should stay the same as it does, however, array a should change to two ours earlier. I would expect somehting like 12-Apr-2018 12:51:36 for the first date.
K>> myDatesLocal = myDates(1:3)
myDatesLocal =
3×1 cell array
'12/04/18 14:51:36'
'12/04/18 14:52:36'
'12/04/18 14:53:36'
K>> b =datetime(myDatesLocal,'InputFormat','dd/MM/yy HH:mm:ss','TimeZone','Europe/Amsterdam')
b =
3×1 datetime array
12-Apr-2018 14:51:36
12-Apr-2018 14:52:36
12-Apr-2018 14:53:36
K>> a =datetime(myDatesLocal,'InputFormat','dd/MM/yy HH:mm:ss','TimeZone','UTC')
a =
3×1 datetime array
12-Apr-2018 14:51:36
12-Apr-2018 14:52:36
12-Apr-2018 14:53:36
What am I doing wrong?
Thanks in advance!

Respuesta aceptada

Guillaume
Guillaume el 20 de Abr. de 2018

No, when you create your a, you're simply telling matlab that the 14:51 is measured in the UTC timezone. At no point do you tell matlab that it is measured in Amsterdam timezone but to be displayed in UTC.

The correct way to do what you want is to create your datetime in the Amsterdam timezone, then tell matlab to change the timezone to UTC:

>> myDatesLocal = {'12/04/18 14:51:36'
                   '12/04/18 14:52:36'
                   '12/04/18 14:53:36'};
>> b = datetime(myDatesLocal,'InputFormat','dd/MM/yy HH:mm:ss','TimeZone','Europe/Amsterdam')
b = 
  3×1 datetime array
   12-Apr-2018 14:51:36
   12-Apr-2018 14:52:36
   12-Apr-2018 14:53:36
>> b.TimeZone = 'UTC'
b = 
  3×1 datetime array
   12-Apr-2018 12:51:36
   12-Apr-2018 12:52:36
   12-Apr-2018 12:53:36
  4 comentarios
Javier
Javier el 24 de Abr. de 2018
Thanks Peter, could you explain a bit more what time zone I should specify in with the z option?
Peter Perkins
Peter Perkins el 26 de Abr. de 2018
I don't understand the question. 'z' is something you would add to the display format of a datetime to show the (offset of) the time zone your array is set to. doc datetime.Format.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by