1

私はJavaで「TimeZoneOffset」を取得しようとしていますが、これを参照して、これを実装しました。

long unix_time_at_midnight;
DateFormat dateFormat= new SimpleDateFormat("MM/dd/yyyy");
Date d = new Date((unix_time*1000)/1000);
String d1 = dateFormat.format(d);
unix_time_at_midnight = Long.parseLong(d1);
int m=TimeZone.getOffset(unix_time_at_midnight) ;

「TimeZone型のメソッドgetOffset(int、int、int、int、int、int)は引数(long)には適用できません」というメッセージが表示されます。誰でもガイドできますか?

4

1 に答える 1

1

メソッドは抽象クラスであり、実装されたサブクラスTimezone.getOffset(int era, int year, int month, int day, int dayOfWeek, int milliseconds);から参照する必要があります。Timezone

非静的メソッドに静的にアクセスしようとしていますが、コンパイラーはそれを抽象メソッドと照合しています。

あなたが探している解決策は次のとおりです。

int m=TimeZone.getDefault().getOffset(unix_time_at_midnight) ;

編集: BlackBerry APIを見ると、メソッドTimeZoneがないことがわかりますが、 。getOffset(long date)getOffset(int era, int year, int month, int day, int dayOfWeek, int millis)

考えられる解決策は次のとおりです。

Date d = new Date((unix_time*1000)/1000)
TimeZone tz = TimeZone.getDefault();
Calendar c = Calendar.getInstance(tz);
c.setTime(d);
int m = tz.getOffset(1, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH), c.get(Calendar.DAY_OF_WEEK), c.get(Calendar.MILLISECOND));
于 2013-01-20T13:25:39.313 に答える