2011-09-10 9 views
0

私は地球ツールWebサービスを使用して、緯度経度に基づいてタイムゾーンを探しています。私は、Webサービスでオフセットと接尾辞を取得しています。今タイムゾーンのオフセットとサフィックスに基づいて夏時間の表示を見つける

Earth Tool Webservice

問題、私はオフセットとサフィックスからタイムゾーンを取得し、昼間の領域に保存したりではないがあるかどうかを決定する必要がありますされて直面しています。これどうやってするの?

+0

あなたがその特定のWebサービスを使用する必要がありますか?オフセットにDSTが含まれているかどうかを知る必要があるのはなぜですか? –

答えて

1

.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; 
+0

ありがとう、しかし、私は何をしようとしている私は、オフセットとサフィックスを持っていると私はサーバーの現地時間を取得し、その 'TimeZone tz = TimeZone.CurrentTimeZone; DateTime SystemTime = DateTime.Now; DateTime Usertime = tz.ToUniversalTime(SystemTime).AddHours(int.Parse(TimeStamp)); ' –

+0

ユニバーサルタイムは既にフィードにあり、タイムゾーンのローカルタイムもです。あなたのコードがあなたのフィードに関する質問やあなたがやろうとしていることとどのように関連しているのか分かりません。 "DateTime.UtcNow"を使用してサーバー*のUTC時間を取得することができます。 – TheCodeKing

0

あなたが使用しているAPIは、そのlang +ロットに​​夏時間がある場合に返されます。オフセットとサフィックスからそれを見つける必要はありません。

はこれを参照してください:

DST
のlocaltimeとisotime要素は、時間を節約 夏時間を含めるかどうか。そうである場合、この要素の値は になります。そうでない場合、値はFalseになります。 で夏時間を使用するかどうかを判断できない場合、 の値は不明です。以来:DSTは、国固有のものですので、1.1

この属性なしで、それを自分自身を決定したい場合、あなたは、ある指すように国を知っている必要があります。

+0

実際には、私はサフィックスを保存しており、APIからデータベースにスポットワイドからオフセットしています...将来的にはスポット情報を取得したいので、それに応じて現地時間を取得する必要があります。 APIは実際に夏時間の属性を指定していますが、将来はデータベースから実際に夏時間の保存を見つけることができません。 –

関連する問題