2016-11-01 3 views
1

私はいくつかの類似した質問、などが見つかりました:アンドロイドでタイムゾーンオフセットを取得するにはどうすればいいですか?

How to get the timezone offset in GMT(Like GMT+7:00) from android device?

How to find out GMT offset value in android

しかし、これらすべての答え(+12:00)は、現在ニュージーランドの夏時間のために間違っています。私は、デバッグをしたとき、私はGoogleカレンダーのイベントオブジェクトからこれを

ました:

"dateTime" -> "2016-11-06T10:00:00.000+13:00"

正しい+13:00あるべきオフセットを取得するために、どのように?

ありがとうございました。

答えて

0

だから、私はGMT カレンダーてSimpleDateFormatが、両方の0を返します。私はDateクラスで非推奨メソッドを使用して解決策を見つけてオフセットを取得しようとしました。 だから、このコードは私のために働く。

private double getOffset() {          
    Calendar calendar = Calendar.getInstance(Locale.ENGLISH);  
    int defHour = calendar.get(Calendar.HOUR_OF_DAY);    
    int defMinute = calendar.get(Calendar.MINUTE) + (defHour * 60); 
    Date date = new Date(System.currentTimeMillis());    
    int curHour = date.getHours();         
    int curMinute = date.getMinutes() + (curHour * 60);    
    double offset = ((double) curMinute - defMinute)/60;   
    return offset > 12? -24 + offset : offset;      
}            

次に、あなたは(DSTに応じて異なります)ミリ秒単位でUTCからのオフセット電流を取得するには、結果

0

をフォーマットすることができます。

return TimeZone.getDefault().getOffset(System.currentTimeMillis()); 

代わりにRFC 822タイムゾーンの文字列を取得するには

return new SimpleDateFormat("Z").format(new Date()); 

フォーマットは(+/- )HHMM

関連する問題