我有一个asp.net网站,它将使用EST时间托管在服务器上,并且可能会在运行EST的计算机/设备上创建。用户将更新北美各地的相关信息。我需要更新的时间戳在进行更新的位置的本地时间,而不是服务器或计算机时间。因此,我需要能够根据城市和州/省或邮政编码获得位置的偏移量。我已经看过了http://www.earthtools.org/webservices.htm#timezone它需要纬度和经度,而我没有。
您可以从谷歌地图中退出纬度和经度。
例如,地址为"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转换为用户的本地时间。