我有一个asp.net网站,它将使用EST时间托管在服务器上,很可能是在美国东部时间运行的计算机/设备上进行的。用户将更新有关北美各地的信息。我需要在更新所在位置的本地时间进行更新的时间戳,而不是服务器或计算机时间。所以我需要能够根据City和State / Province或Zip代码获取位置的偏移量。我已经看过http://www.earthtools.org/webservices.htm#timezone,它需要经度和经度,这是我没有的。
答案 0 :(得分:1)
您可以从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转换为用户的本地时间。