2010-12-05 7 views
4

GPSモジュールとSQLiteデータベースで動作するAndroidアプリがあります。最初はすべてがとても素敵ですが、Date()とタイムゾーンで作業する必要があるときに恐怖があります。Android Date Timezoneでナッツを駆動

少し背景

GPSモジュールは、衛星から日付を取得する可能性があります。これは素晴らしいことであり、私は有効なデータを保証するために私のアプリケーションでそれが必要です。それから返される日付はGMT時間です。 この日付は、StartTimeとしてローカルデータベースのフィールドに挿入されます。 StartTimeはAESで暗号化されて保存されます。私はStartTimeを解読すると、それをDateとして変換し、フォーマットをGMTとして保持する必要があります。

私は はLocationListenerにGPSからデータを取得何:

gpsDate = new Date(location.getTime()); 

GPS日は、デバイスの現在のタイムゾーンに変換され、デフォルトでは、新しいDate()を持つこと。だから、素敵なの代わりに日曜日05 14:00:00 GMT 2010時間、私は日12月16:00:00 GMT + 2 2010を得る。それはなぜそれをするのですか?私はちょうど新しいDateをgetTime()から外したかったのです。

私は、データベース内のデータを挿入します。

SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
outputFormat.setTimeZone(TimeZone.getTimeZone("GMT")); 
String myStored = {decrypy from the database} 
Date myStartDate = outputFormat.parse(myStoredDate); 

myStoredショー:2010-12-05午後02時00分

SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
outputFormat.setTimeZone(TimeZone.getTimeZone("GMT")); 
String date = outputFormat.format(gpsDate); 

私は私がそれを必要とするとき、日付を取得します

myStartDateの表示内容:日曜日12月16:00:00 GMT + 2 2010

ここには何かがありません。私は、GMT形式で日付を取得し、挿入し、変換し、比較し、相違を計算できるようにする必要があります。ユーザーにタイムゾーンを表示する必要があるときだけ、そのタイムゾーンに日付が必要です。

私を照らしてください。

+1

DATEオブジェクトをデータベースに格納する必要があるのはなぜですか。あなたがlocation.getTime()から取得する時間に入れてください。 – Falmarri

+0

これは一種の強みです...私はそれがどのように動作するか試してみます。 – Alin

+0

何かが追加されません、myStartDateはここに日付です。あなたは「ショー」とは何を意味するのか?デバッガで?インシステム。アウト.println?もしあなたが私がGMTとして日付自体を解析したとしても、デフォルトの環境設定はデバイスフォーマットにとどまっていますが、それをあなたの時間フォーマットで表示したいのであれば、別の日付フォーマットを作成し、GMT 。 – codeScriber

答えて

2

問題は、タイムゾーンを保存していないように見えます。あなたが保管していた場所から回収されたときにmyStoredがTZなしで戻ってきたとあなたは言った。次に、あなたがそれを構文解析すると、GMTを使用するように強制します。 GMTは現地の時間帯と2時間違うので、時間は2時間ごとに異なります。

簡単に言えば、あなたはそれを格納している場所に出力をフォーマットするために、zまたはZオプション付きのsimpledateformatを使用して、衛星時間を取ることができるはずです。あなたはsetTimezoneメソッドを使うべきではありません。その後、新しい日付ではなく、以前と同じdateformatterを使用して、保存した場所からの受信日を解析します。

これを実行した後、出力をユーザーに送信する前に、タイムゾーンを決定してから、そのデータにタイムゾーンを設定します。

+0

サンプルコードをお知らせください。 –

関連する問題