0

カレンダーの日付は米国/太平洋タイムゾーンに設定されていますが、印刷すると

    Calender dateCalender = getDateFromFile();
    System.out.println("Calender TimeZone: " + dateCalender.getTimeZone().getDisplayName());
    System.out.println("Calender : " + dateCalender.getTime());

まったく同じ日付/時刻が表示されますが、タイムゾーンは IST (私はインド出身です) です。たとえば、印刷します

Calender TimeZone: **Pacific Standard Time**
Calender : Wed Oct 09 00:00:00 **IST** 2013

デバッガーを使用しようとし、表示されるdateCalender値を確認しようとしました

java.util.GregorianCalendar[time=1381257000000,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id="US/Pacific",offset=-28800000,dstSavings=3600000,useDaylight=true,transitions=185,lastRule=java.util.SimpleTimeZone[id=US/Pacific,offset=-28800000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2013,MONTH=9,WEEK_OF_YEAR=41,WEEK_OF_MONTH=2,DAY_OF_MONTH=9,DAY_OF_YEAR=282,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=19800000,DST_OFFSET=0]

Calender のこの動作がわかりませんgetTime。同じタイムゾーン形式で日付を印刷する方法を教えてください。

4

2 に答える 2

2

Calendar インスタンスの作成中に正しいタイムゾーンを設定する必要があります。

例えば:

java.util.Calendar cal = java.util.Calendar.getInstance(
      GMT_TIMEZONE, EN_US_LOCALE);

上記のコード スニペットでは、タイム ゾーンを GMT に設定しているため、米国/太平洋タイム ゾーンを設定する必要があるのと同じ方法で GMT で時間が表示されます。

TimeZone クラスの詳細を確認する

于 2013-10-17T13:51:33.997 に答える