1

WebアプリケーションでAjaxControlKitを使用しています。問題は、インドのタイムゾーンでアプリケーションにアクセスすると正常に機能することですが、中部標準時(米国とカナダ)のタイムゾーンを選択すると、カレンダーに選択日-1として表示日が表示されます。たとえば、2012年10月16日を選択すると、(エクステンダーコントロールで)2012年10月15日と表示されます。私は次のコードを試しましたが、役に立ちませんでした:

protected void Page_Load(object sender, EventArgs e) {
    string Lang = "en-US"; //set your culture here
    System.Threading.Thread.CurrentThread.CurrentCulture =
        new System.Globalization.CultureInfo(Lang);
}

EnableScriptGlobalization = "true";

また、デバッグ中に、Javascript関数自体の送信者が間違った値を格納していることがわかりました。つまり、日付は=選択された日付-1です。

function setDateIntoHiddenField(sender, args)

アイデアや提案はありますか?

4

3 に答える 3

2

なぜルーマニアの文化を試しているのですか?次のような米国の文化で試してください。

string Lang = "en-US"; //set your culture here
System.Threading.Thread.CurrentThread.CurrentCulture =
new System.Globalization.CultureInfo(Lang);

中部時間は UTC -5

ルーマニア時間は UTC+2

次のように日付ピッカーの値を設定します。

DateTime.UtcNow

タイムゾーンの使用に関する詳細な説明は、次のとおりです。タイムゾーン をエレガントに処理する方法

于 2012-10-17T09:50:33.733 に答える
1

次のコードを試して、クライアント側でUTC日​​付を設定できます

 var localDate = sender.get_selectedDate(); 
    var dateTime = new Date(localDate.getUTCFullYear(), localDate.getUTCMonth(), localDate.getUTCDate()).format("MMM dd, yyyy");

次に、を使用dateTimeしてテキストボックスにテキストを設定します。

于 2012-10-18T09:30:27.313 に答える
1

ローカルの代わりに UTC 日付値を使用する必要があるという適切なアドバイスを既に得ています。

SelectedDate 値を設定すると、カレンダー エクステンダー コントロールによって UTC 日付と見なされます。したがって、16.Oct.2012選択した日付値を設定すると、設定Tue, 16 Oct 2012 00:00:00 GMTしたことを意味し、この値が現地の中央時間に変換されると、中央時間帯では 10 月 15 日のままです。厳密に言うと10/15/2012 7:00:00 PM.

ところで、16.Oct.2012 23:00選択した日付の値を設定して、インド地域の表示された日付を確認してみてください。驚かれることをお約束します。

于 2012-10-17T14:12:52.630 に答える