Получить смещение часового пояса от города и штата / провинции или почтового индекса - PullRequest
0 голосов
/ 13 января 2012

У меня есть веб-сайт asp.net, который будет размещен на сервере, использующем время EST, и, вероятно, будет создан на компьютере / устройстве, работающем в EST.Пользователь будет обновлять информацию, относящуюся к местоположениям по всей Северной Америке.Мне нужно, чтобы временная метка обновления производилась по местному времени места, в которое выполняется обновление, а не по времени сервера или компьютера.Поэтому мне нужно иметь возможность получить смещение для местоположения на основе либо города и штата / провинции, либо почтового индекса.Я уже посмотрел на http://www.earthtools.org/webservices.htm#timezone, и это требует широты и долготы, которых у меня нет.

1 Ответ

1 голос
/ 13 января 2012

Вы можете удалить широту и долготу с карты Google.

Например, адрес «123 Street, Los Angeles, CA 12345» или адрес только с почтовым индексом «12346»

public void GetCoordinate(string address)
{
    WebClient client = new WebClient();
    Uri uri = new Uri(String.Format("http://maps.google.com/maps/geo?output=csv&q=" + HttpUtility.UrlEncode(address)));

    // Return numbers -
    // 1 = Status Code
    // 2 = Accurancy
    // 3 = Latitude
    // 4 = Longitude
    string[] geocodeInfo = client.DownloadString(uri).Split(',');

    decimal latitude = Convert.ToDecimal(geocodeInfo[2]);                
    decimal longitude = Convert.ToDecimal(geocodeInfo[3]);            
}

Предлагаю сохранить созданное / обновленное время в UTC.При его отображении преобразуйте этот UTC в местное время пользователя на основе смещения часового пояса пользователя (которое сохраняется в профиле пользователя).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...