0

TimeZone クラスから時刻を取得する方法を教えてください。このコードを実行すると

System.out.println("Default Timezone: " + TimeZone.getDefault())

私はこれを得た

Default Timezone: sun.util.calendar.ZoneInfo[id="Asia/Manila",offset=28800000,dstSavings=0,useDaylight=false,transitions=10,lastRule=null]

のような時間を取得する関数が見つかりませんTimeZone.getDefault().getTime()。助けてください。

4

7 に答える 7

4

EST TimeZone の時間を取得するには、以下を試してください。

TimeZone est = TimeZone.getTimeZone("America/New_York");
Calendar calendar = new GregorianCalendar(est);
System.out.println(calendar.getTime());     //<-prints the date
System.out.println(calendar.getTimeInMillis()); //<-prints the time in milliseconds

タイムゾーンを他のタイムゾーン (PST など) に変更して、他のタイムゾーンの時刻を取得できます。

TimeZone pst = TimeZone.getTimeZone("America/Los_Angeles");
calendar.setTimeZone(pst);
System.out.println(calendar.getTime());      //<-prints the date
System.out.println(calendar.getTimeInMillis()); //<-prints the time in milliseconds

お役に立てれば。

于 2012-10-15T03:51:23.737 に答える
3
Date theCurrentDateAndTime = new GregorianCalendar(timeZone).getTime();
于 2012-10-15T03:24:12.667 に答える
2

TimeZoneは、時間ではなくタイムゾーンを表す抽象クラスです。getDefault() を呼び出していると述べたように、getDefault()TimeZone.getDefault()を使用すると、プログラムが実行されている場所に基づいてタイムゾーンを取得できます。

日付だけを印刷したい場合は、カレンダー日付などのオプションがあります 。タイムゾーン固有の時間で移動したい場合は、タイムゾーンを設定してそのゾーンの時間を取得します。

あなたのプログラムはこのように日付を出力します (これは唯一の方法ではありません):

    TimeZone defaultTimezone = TimeZone.getDefault();
    Calendar calendar = new GregorianCalendar(defaultTimezone);
    System.out.println(calendar.getTime());
于 2012-10-15T04:02:24.300 に答える
1

TimeZone クラスは、時間ではなくタイム ゾーンを表します。Date代わりにまたはCalendarクラスのいずれかを使用する必要があります。

于 2012-10-15T03:21:28.123 に答える
1

今日の日付/時刻を取得するには、いずれかDate(または) APIを使用する必要があります。Calendar

これらの API は、システムで構成されたデフォルトのタイム ゾーンを使用します。

于 2012-10-15T03:23:22.943 に答える
1

あなたはそうしない。

TimeZone の Javadoc。これは現在の時刻とは何の関係もないことに注意してください。

カレンダーを見る

于 2012-10-15T03:23:30.010 に答える