Converting geographic coordinates to a timezone offset

Is anyone aware of a service where I can supply a latitude, a longitude and a local date/time, and get back the timezone offset for that location at that time?

For example, I provide;

latitude = -37.56
longitude = 143.85
date/time = 01/01/2009 1:00pm

…and I would get back the answer as the number of hours offset from UTC (which in this case would be 11).

I need a service that is up to date with timezone changes, particularly some of the daylight savings shenanigans that happen in my part of the world (we postponed the end of daylight savings for the Commonwealth Games a few years ago).

P.S I just found EarthTools, which nearly does what I want. It is limited to one request per second, and also is unaware of daylight savings time in my area (Australia). Does anyone know of any others?

P.P.S Geonames looks good too, but again doesn’t allow me to specify a timestamp.

In case anyone stumbles across this thread, I created my own service which solves this problem.

Lookup timezone offset by geographic coordinates (latitude longitude) and datetime