8

私のサーバーは米国にあり、Web ブラウザーを介してインドのアプリケーションにアクセスしています。その場合、何TimeZone.getDefault()が返されますか? インドに基づいてタイムゾーンを返す場合、何に基づいて返されますか?

コントロール パネルの設定で、システムの別のロケールと別のタイム ゾーンに変更しましたが、自分の設定に基づいて変更されていません。

私は休閑者としてコードを書きました...

def dateFormat = DateFormat.getDateTimeInstance(DateFormat.DEFAULT,DateFormat.DEFAULT,Locale.getDefault())
dateFormat.setTimeZone(TimeZone.getDefault())
4

3 に答える 3

8

TimeZone.getDefault() が実行される JVM のタイムゾーンを返します。したがって、アプリケーションがインドのサーバーで実行されている場合、「Asia/Calcutta」のようなものになります。

于 2013-02-15T13:25:51.937 に答える
1

デフォルトのタイムゾーンは通常、ユーザーやアプリケーションではなくホストに設定されます。あなたの場合、アプリケーションが実行されているサーバーのデフォルトのタイムゾーンになります。おそらく米国のタイムゾーンです。

date +%Zサーバー上の Unix コンソールでコマンドを実行してみてください。

于 2013-02-15T13:29:23.633 に答える
0

これは、「このコードが実行される場所」の問題です。インドのブラウザーでアクセスされている Web アプリケーションについて話している場合、取得される日付の種類は米国になります。ユーザーのセッションに適切なロケールとタイムゾーンを設定しない限り。Vaadinのようなフレームワークでは、アプリケーションを呼び出すとsetLocale()タイムゾーンも設定されますが、他のプラットフォームでは、特定のタイムゾーンで日付フォーマッターを明示的に使用する必要がある場合があります。

于 2013-02-15T13:25:07.153 に答える