web-dev-qa-db-ja.com

AndroidモバイルからTimeZoneを取得する方法は?

ボタンをクリックしたときにAndroidモバイルからタイムゾーンを取得したい。

119
asha v

TimeZone.getDefault()を使用しようとしましたか:

ほとんどのアプリケーションはTimeZone.getDefault()を使用します。これは、プログラムが実行されているタイムゾーンに基づいてTimeZoneを返します。

参照: http://developer.Android.com/reference/Java/util/TimeZone.html

171
MasterCassim
TimeZone tz = TimeZone.getDefault();
System.out.println("TimeZone   "+tz.getDisplayName(false, TimeZone.SHORT)+" Timezon id :: " +tz.getID());

出力:

TimeZone GMT + 09:30 Timezon id ::オーストラリア/ダーウィン

116
Zulfiqar

編集:ケースを修正しました

TimeZone.getDefault()

17
Jigar Joshi

このコードを試してください-

Calendar cal = Calendar.getInstance();
TimeZone tz = cal.getTimeZone();

ユーザーが選択したタイムゾーンを返します。

13
anujprashar

オフセットが必要でした。これは、夏時間だけでなく数値としても含まれていました。これは、誰かが例を探している場合に使用したコードです。

"3.5"(3:30 ')の応答を受け取ります。これは冬のイランのテヘランと"4.5"(4:30')で予想されるものです夏のために 。

最後の行が不要になるように、サーバーに投稿できるように、文字列としても必要でした。

正しいタイムゾーンを取得するため:

TimeZone tz = TimeZone.getDefault();
Date now = new Date();
//Import part : x.0 for double number
double offsetFromUtc = tz.getOffset(now.getTime()) / 3600000.0;
String m2tTimeZoneIs = Double.parseDouble(offsetFromUtc);
10

単純な日付形式を使用した最も単純なソリューション:SimpleDateFormat( "ZZZZZ"):

 Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT"),
                Locale.getDefault());
        Date currentLocalTime = calendar.getTime();

        DateFormat date = new SimpleDateFormat("ZZZZZ",Locale.getDefault());
        String localTime = date.format(currentLocalTime);
        System.out.println(localTime+ "  TimeZone   " );

==>出力は:+05:30

3
Jaydeep purohit
TimeZone timeZone = TimeZone.getDefault(); 
timeZone.getID();

次のように印刷されます

Asia/Kolkata
3
Raja Jawahar

http://developer.Android.com/reference/Android/text/format/Time.html によれば、Time.getCurrentTimezone()を使用してデバイスの現在のタイムゾーンを取得する必要があります。

2
Thom

API 26以降を搭載したデバイスの場合、次のように取得できます。

ZonedDateTime.now().getZone().toString();
0
taurelas