4

私は基本的に Android で .vcs ファイルを読み込もうとしています。次の形式のタイムゾーン値があります。

TZ:+05:30

この値に対応するタイムゾーン名を取得したいと思います。この場合は、コルカタ (インド) になります。

Androidでこれを達成するためのコードはありますか?

4

2 に答える 2

1
        TimeZone tz = TimeZone.getTimeZone("GMT-06:00");

        String tzarr[] = TimeZone.getAvailableIDs(tz.getRawOffset());
        for(int i=0;i<tzarr.length;i++)
于 2012-08-03T12:26:36.977 に答える
0

(テキストを簡単にオフセットに解析できると思います。)

一般的に、あなたはできません。「+05:30」のようなものは、ある特定の時間におけるUTCからのオフセットを表します。年間(または履歴)のタイムゾーン内でオフセットがどのように変化するかを表すものではありません。たとえば、ヨーロッパ/ロンドンのタイムゾーンはアフリカ/カサブランカと同じオフセットを持っている場合がありますが、常にそうとは限りません。

これが特定の日付/時刻に関連付けられていると仮定すると、を使用TimeZone.getAvailableIDsして、すべてのタイムゾーンで反復し、その特定の瞬間のUTCからのオフセットを確認し(を使用してTimeZone.getOffset(long))、適切な時間に適切なオフセットを持つタイムゾーンを確認できます。ただし、そのようなゾーンは多数存在する可能性があります。

特定の日時がない場合は、さらにあいまいになります。を使用getRawOffsetgetDSTSavingsて、ターゲットオフセットが特定のゾーンの標準オフセットであるかDSTオフセットであるを確認できます。ただし、これらの呼び出しでは、特定のタイムゾーンで、DSTオフセットと標準オフセットが履歴全体で同じであると想定していることに注意してください( t常にtrue)。

于 2012-08-03T05:59:50.673 に答える