連絡先を同期するためのアプリを開発しています。すべての連絡先には update_time フィールドがあります。この現在の update_timeを以前の update_timeと比較したい。
私の問題は、今回はデータベースに文字列形式で保存していることです。
1.この文字列を時間に変換するには? と
2.2つの時間を比較するには?
2014-07-11 15:10:55これは私の時間形式です。
ヘルプやコメントは大歓迎です。貴重なご回答ありがとうございます。
sqlite データベースにタイムスタンプを保存することをお勧めします。
getTime()とsetTime(long)は、 Dateオブジェクトとタイムスタンプの間の変換に役立ちます。
さらに、タイムスタンプを長整数として直接比較することもできます。これらは、1970 年 1 月 1 日 00:00:00 GMT からのミリ秒数です。
(データベースに値をテキストではなく整数として保存することを検討することをお勧めします。ここには長所と短所があるため、実際の質問とは少し別の考えとして残します。)
に解析してもよければ、解析はかなり簡単ですjava.util.Date
。
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
US ロケールを指定すると、デバイスのデフォルト ロケールの影響を受けなくなります。(これらは単なる数字であるため、いずれにせよ可能性は低くなりますが、別の暦体系を使用する可能性は考えられます。)
値の比較について:
String.compareTo
;を使用できます。ISO-8601 形式の利点の 1 つは、並べ替えができることです。データベースにある値を比較する場合、ISO-8601 の定義方法により、SQL クエリで同じ方法で比較できます。Date
フォームで取得し、それらを比較しますDate.compareTo
Joda Timeを使用できる場合、それは一般的に、java.util.Date
その他よりも優れた日付/時刻 API であることに注意してください。