2016-05-31 6 views
6

電話ユーザーのタイムゾーンを取得したいので、私は自分のAPIから取得したUTC時刻に追加または減算することができます。例)。リアクションネイティブでタイムゾーンを取得する

私は、DatePickerIOSでオフセットを追加する方法しか見つけられませんでしたが、他には何もありません...正面からそれを得ることは可能ですか?

+1

あなたは、デバイスを取得したいですか何とかタイムゾーン? Dateオブジェクト(JS内)の 'getTimezoneOffset()'から取得できませんか? –

+0

実際に動作するかもしれません...私はそれをチェックしましょう! –

+0

素晴らしい!私に知らせて、私は正式に回答を掲示します。 –

答えて

8

ブラウザ上のJavaScript(もちろん例外はありますが)でできることはほとんどありませんが、React Nativeで行うことができます。新しい日付オブジェクトを開始し、getTimezoneOffset()を呼び出して、タイムゾーンがローカルでオフセットされる分数を取得します。

var date = new Date(); 
var offsetInHours = date.getTimezoneOffset()/60; 
5

オフセットは、夏時間やオペレーティングシステムの調整ができないため、使用しないことをお勧めします。

代わりにJavaScriptをUTCから変換してください。あなたは任意タイムゾーンに変換する必要がある場合、あなたは私は上記と同じ理由moment.jsのようなライブラリを使用して見なければならないConvert UTC date time to local date time using JavaScript

:このSO答えは一例を示しています。

0

実際のタイムゾーンID(例:America/New_York)を取得し、最初にそのタイムゾーンを使用するようにサーバープログラムを設定する方がよいことがわかりました。それを取得するには、反応するネイティブ・デバイス情報ライブラリを使用します。あなたは、コンパイル時に「tvOS」に関するエラーが出る場合は、この修正プログラムを参照してくださいhttps://www.npmjs.com/package/react-native-device-info

import DeviceInfo from 'react-native-device-info'; 

console.log(DeviceInfo.getTimezone()); // 'America/New_York' 

を:https://github.com/rebeccahughes/react-native-device-info/issues/286

関連する問題