0

私は英国とアイルランドの人々だけが使用するAndroidアプリを持っていますが、このアプリを海外で使用する予定はありません。

アプリでは、さまざまな日付を保存しますが、時刻を含む完全なタイムスタンプは必要ありませんが、必要なのは日付だけです。

日付を簡単に比較できるように、カレンダーオブジェクトを作成して時刻の値をクリアし、そのミリ秒を使用してデータベースに格納しています。

public Calendar clearCalTime(long l) {
    Calendar cal = Calendar.getInstance();
    cal.setFirstDayOfWeek(Calendar.MONDAY);
    cal.setTimeInMillis(l);
    cal.clear(Calendar.HOUR);
    cal.clear(Calendar.HOUR_OF_DAY);
    cal.clear(Calendar.MINUTE);
    cal.clear(Calendar.SECOND);
    cal.clear(Calendar.MILLISECOND);
    return cal;
}

問題は、ユーザーがタイムゾーンを変更すると、たとえば間違った日に保存するなど、何らかの理由で日付が乱れ始めることです。タイムゾーンは何でもかまいません。ユーザーが設定する内容を制御することはできません。

タイムゾーンをUTCに設定しようとしましたが、これも機能しません。タイムゾーンを無視する方法はありますか?

4

1 に答える 1

0

いいえ。ストレージに出入りするTimeZoneを設定する必要があります。

これを行う必要があります:

Calendar c = new GregorianCalendar(TimeZone.getTimeZone("GMT"));

一貫性を保つためにコードで。

このSOを参照してください:Java.util.Calendar-1970年1月1日からのミリ秒

または、複雑な日付/時刻の計算を処理する場合は、 JodaTimeを使用します。

于 2012-08-28T15:33:02.573 に答える