Go from Local Time to UTC with respect to the dates I have!

45 views (last 30 days)
Hi guys, I need your expertise on that.
I have a column with dates and time (see attached) which is in Local Time Zone (Europe/Athens) and I want to convert it to UTC. I know this is pretty straight forward but the problem lies here:
If you notice on the attached .xlsx, arrows between 25103 and 25104 are missing the date 29-Mar-2015 03:00:00. That is because the weather station was using Daylight Saving Time for the entire year (UTC+0300), and I tried to change that and keep UTC+0200 for wintertime. Therefore I missed 29-Mar-2015 04.00 (which was the time that Greece changed from UTC+0200 to UTC+0300) and I have a double entry for 25-Oct-2015 03.00 ( (which was the time that Greece changed from UTC+0300 to UTC+0200).
When I try to go from LT to UTC with
LT.TimeZone = 'UTC';
I am losing information about the two errorous dates I mentioned (29-Mar-2015 03:00:00 and 25-Oct-2015 03.00). Which means that I am creating a column with all dates starting from 31/12/2014 21.00 to 31/12/2015 22.00.
Is there a solution to my problem? I would appreciate your thoughts...

Accepted Answer

Star Strider
Star Strider on 16 Mar 2020
The data in your Excel file need a bit of preprocessing, then the conversion is straightforward:
D = readtable('Date-Time.xlsx','ReadVariableNames',0);
D.Var1 = datetime(strrep(D.Var1, '''', ''), 'TimeZone','Europe/Athens');
then to do the conversion:
Original = D.Var1(1:5,:) % Information Only (Delete)
D.Var1.TimeZone = 'UTC';
New = D.Var1(1:5,:) % Information Only (Delete)
producing:
Original =
5×1 datetime array
31-Dec-2014 23:00:00
31-Dec-2014 23:00:00
31-Dec-2014 23:00:00
31-Dec-2014 23:00:00
31-Dec-2014 23:00:00
New =
5×1 datetime array
31-Dec-2014 21:00:00
31-Dec-2014 21:00:00
31-Dec-2014 21:00:00
31-Dec-2014 21:00:00
31-Dec-2014 21:00:00
  7 Comments

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!