2011-01-23-12.31.45形式で外部ソースからアプリケーションにタイムスタンプを渡しました。私はそれを現在のシステムのタイムスタンプと比較して、2分以内の違いを確認する必要があります。どのようにこれを達成するための任意のアイデア?Javaタイムスタンプの比較
4
A
答えて
5
これはタイムスタンプではなく、日付です。
SimpleDateFormat sdf = new SimpleDateFormat("yyy-dd-MM-HH.mm.ss");
Date date = sdf.parse(inputDateString);
long timestamp = date.getTime();
をそして比較 - 分は、60×1000ミリ秒を持っている:あなたはそれがyyyy-dd-MM-HH.mm.ss
形式を使用して、java.text.SimpleDateFormat
を使用して解析することができます。日時操作用joda-timeを使用して
が常に優先される - それはします:
- は、データ形式のスレッドセーフな実装を持っている -
DateTimeFormat
(上記の1がスレッドセーフではありません) - は、単純にやります
Minutes.minutesBetween(..)
を使用して、計算するのではなく、2つの瞬間間の分を調べます。
0
これは最適化することができますが、これは私が思いついたものです。それはいくつかの作業が必要ですが、それはあなたを開始する必要があります。
public class Test {
private final String serverValue = "2011-01-23-12.31.45"; //Old should fail
private final String serverValueNew = "2011-03-28-14.02.00"; //New
private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss");
public boolean plusMinusTwoMins(String serverValue) {
boolean withinRange = false;
Date now = Calendar.getInstance().getTime();
Date serverDate = now;
try {
serverDate = dateFormat.parse(serverValue);
} catch (ParseException e) {
e.printStackTrace();
}
long millis = Math.abs(now.getTime() - serverDate.getTime());
System.out.println("Millis: " + millis);
//1000ms * 60s * 2m
if (millis <= (1000 * 60 * 2)) {
withinRange = true;
}
return withinRange;
}
public static void main(String[] args) {
Test test = new Test();
boolean value = test.plusMinusTwoMins(test.serverValue);
System.out.println("Value: " + value);
boolean value2 = test.plusMinusTwoMins(test.serverValueNew);
System.out.println("Value2: " + value2);
}
}
関連する問題
- 1. PHPのタイムスタンプ比較
- 2. Bashタイムスタンプの比較
- 3. UTCタイムスタンプの比較
- 4. mysqlタイムスタンプの比較
- 5. 2つのタイムスタンプの比較
- 6. PHPでのタイムスタンプの比較
- 7. タイムスタンプとPHPの比較?
- 8. のJava - 比較
- 9. mysqlのタイムスタンプを比較する
- 10. Java比較日
- 11. Ant:タイムスタンプを比較するには?
- 12. PHP/Javascriptでタイムスタンプを比較する
- 13. Javaのシーケンス比較
- 14. のJava Unicodeの比較
- 15. のJavaスタックの比較
- 16. Javaでのポーカーハンドの比較
- 17. AndroidのJavaソートの比較
- 18. Java Booleanクラスの比較
- 19. Javaの二重比較
- 20. Javaインターフェイスコンパレータのstatic比較
- 21. Java EnumerationとIteratorの比較
- 22. Javaの比較配列
- 23. ClickOnceとJava WebStartの比較
- 24. xmlオブジェクトの比較java
- 25. Java配列の比較
- 26. Java Async Httpクライアントの比較
- 27. C++のデストラクタ(javaと比較)
- 28. 文字列の比較 - Java
- 29. Java文字列比較
- 30. Javascript日付の比較タイムスタンプの値を無視する
は静的 'SimpleDateFormat'に注意してください - それはスレッドセーフではありません。 – Bozho
そう、私はこれをかなり速く書いた。これを達成する方法の一つを考えようとしています。私はあなたの答えに投票しました。スレッドセーフティのためのjoda時間とほとんど同じ考えです。 – blong824