• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 591
  • Last Modified:

Sorting Date/Time when Different Time Zones

I have an internet application written in classic asp that records flight information and I need to be able to print out the itinerary in date/time order properly.  If I have someone leaving from NY and flying to Australia, on the return flight, I need to see them in proper order.  I could have the user enter the timezone as necessary, but then I'm needing to know how to properly sort these.  I have a few instances where the first return flight has a later time (in that time zone) than the second flight in its current time zone.  This is not ordered properly and I need assistance in how to get them entered so that I can sort properly.

Hard to put it into words, so I'm hoping someone can help.
  • 2
1 Solution
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
I assume you understand how to sort date/time but now you just need to account for time zones and daylight savings time.  

For any given airport you will want to first normalize for daylights savings time.  Then you want to normalize your data by adjusting to UTC.  This will put all time zones at the same time zone and adjust for local DST.

You need to start with a database of airport codes matched with hours from UTC http://openflights.org/data.html.

You will key on airport codes in order to match the starting time zone with airport ABC and the time zone db with airport ABC so you can find if it is in DST and the adjustment forward and backward for UTC.  

Use the adjusted time only for purposes of sorting.

About UTC

About DST

Note some of your time conversions for UTC are in minutes and not hours.

To adjust your time in asp


The "n" is for minutes

The -180 represents the number of minutes from UTC. In this sample, using -3hrs converts to 180 minutes.

The startdate would be the date of departure or arrival from the airport.
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
One way to put this together might be using the airport code data as a dictionary object.  Your sample data looks like this:
507,"Heathrow","London","United Kingdom","LHR","EGLL",51.4775,-0.461389,83,0,"E"
26,"Kugaaruk","Pelly Bay","Canada","YBB","CYBB",68.534444,-89.808056,56,-6,"A"

Open in new window

We want to key on the airport code and get back the time difference from UTC and DST. Since there are only 2 fields in the dictionary object, the key and item.  We need to make our item into an array.  You can read up on dictionary objects here http://www.w3schools.com/asp/asp_ref_dictionary.asp

Function getUTC(theDateTime,airportCode)
Dim d
Set d=Server.CreateObject("Scripting.Dictionary")
'the item is a text field using the pipe "|" as a field separator.  
'Left of pipe is hours away from UTC.
'Right of pipe is DST
d.Add "LHR","0|E"
d.Add "YBB","-6|A"
d.Add "PKR","5.75|N"


'convert to UTC
'since the time difference is given in fraction of an hour, I am going to use hours instead of minutes.
'adjust for DST
'I think you can figure this out on your own.   You will need to write your own code to determine the DST.  The info to create your formula is here http://openflights.org/help/time.html
'Your next line of code would be
'timeUTC=~your formula for adjusting for DST here~       
end function

Open in new window

OverthereAuthor Commented:
Will be giving that a try.  Thx!

Featured Post

Become an Android App Developer

Ready to kick start your career in 2018? Learn how to build an Android app in January’s Course of the Month and open the door to new opportunities.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now