我正在使用地球工具webservice根據lat long查找時區。我在Web服務中獲得偏移量和後綴。根據時差的偏移和後綴查找夏令時指示
現在的問題,我面對的是我需要從偏移和後綴獲取時區,並確定是否有日光的區域或不保存。我怎樣才能做到這一點?
我正在使用地球工具webservice根據lat long查找時區。我在Web服務中獲得偏移量和後綴。根據時差的偏移和後綴查找夏令時指示
現在的問題,我面對的是我需要從偏移和後綴獲取時區,並確定是否有日光的區域或不保存。我怎樣才能做到這一點?
.Net有一個不錯的TimeZoneInfo.Local.IsDaylightSavingTime,但不幸的是,您沒有足夠的信息來創建一個實例。
您應該然而,能夠做到這樣的事情:
var offSet = -7;
var utcDateTimeStr = "2011-09-10 22:15:38";
var localWithDSStr = "10 Sep 2011 15:15:38";
// utc time
DateTime utcDateTime = DateTime.SpecifyKind(
DateTime.Parse(utcDateTimeStr), DateTimeKind.Utc);
// time taking into account daylight savings
DateTime localWithDS = DateTime.SpecifyKind(
DateTime.Parse(localWithDSStr), DateTimeKind.Local);
// time not taking into account daylight savings
DateTime localWithoutDS = utcDateTime.AddHours(offSet);
// is the time given adjusted for daylight savings
TimeSpan diff = (localWithoutDS - utcDateTime);
bool isDayLightSaving = diff.Hours != offSet;
謝謝,但我想要做的是我有一個偏移量和後綴,我得到的服務器的本地時間,並從該''TimeZone tz = TimeZone.CurrentTimeZone; DateTime SystemTime = DateTime.Now; DateTime Usertime = tz.ToUniversalTime(SystemTime).AddHours(int.Parse(TimeStamp));' –
世界時間已經在Feed中,時區的本地時間也是如此。我不明白你的代碼如何與你關於Feed的問題有關,或者你正在嘗試做什麼。使用'DateTime.UtcNow'可以獲得*您的服務器UTC時間。 – TheCodeKing
如果在lang + lot中有夏令時,則您正在使用的API返回,您不必從偏移量和後綴中找出它。
看到這個:
DST
無論是否本地時間和isotime元素包括 夏令時。如果他們這樣做,這個元素的值將是 True。如果他們不這樣做,這個值將是假的。如果不能確定是否使用夏令時,則 值將爲未知。因爲:1.1
如果你想確定你自己的,如果沒有這個屬性,你必須知道所在國來的一點是,由於DST是特定國家的。
實際上感謝這個想法是我將API的後綴和偏移量保存到數據庫中,以便在將來我想要檢索地點信息時我應該相應地獲得本地時間。該API確實指定夏令時屬性,但將來我將無法從數據庫中找到它的確是夏令時。 –
你必須使用特定的網絡服務?爲什麼你需要知道偏移量是否包含DST出於興趣? –