我有一個時間戳從外部源傳遞給我的應用程序2011-01-23-12.31.45格式。我需要將它與當前系統時間戳進行比較,確保其不足2分鐘的差異。任何想法如何實現這一目標?Java時間戳比較
4
A
回答
5
這是一個日期,而不是時間戳。你可以把它用java.text.SimpleDateFormat
,使用yyyy-dd-MM-HH.mm.ss
格式解析:
SimpleDateFormat sdf = new SimpleDateFormat("yyy-dd-MM-HH.mm.ss");
Date date = sdf.parse(inputDateString);
long timestamp = date.getTime();
,然後比較 - 一分鐘有60個* 1000米利斯。
使用joda-time日期時操作始終是首選 - 它會:
- 有DATAFORMAT的線程安全的實現 -
DateTimeFormat
(上面的那個不是線程安全的) - 簡單地做
Minutes.minutesBetween(..)
找出兩個時刻之間的分鐘,而不是計算。
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. 時間戳比較
- 2. 比較時間戳
- 3. 比較時間戳
- 4. 比較PHP時間戳(int)和java時間戳(long)
- 5. 比較java中的時間戳
- 6. 比較SQL時間戳
- 7. Javascript比較時間戳
- 8. 如何比較時間戳
- 9. PHP比較UNIX時間戳
- 10. 比較兩個時間戳
- 11. PHP時間戳比較
- 12. 比較時間戳值
- 13. DB2時間戳比較
- 14. PHP比較時間戳
- 15. 比較文件時間戳
- 16. 比較mysql時間戳
- 17. 比較時間戳和實際時間
- 18. SQL查詢比時間戳比較慢
- 19. 比較時間戳和實際時間(Java)
- 20. 時間戳比較刪除當MySQL時間戳>20分鐘
- 21. 時間戳在時間戳範圍內進行比較?
- 22. 比較當前的時間戳與mysql存儲的時間戳
- 23. 比較to_date(CurrentDate)與時間戳
- 24. 比較mysql中的時間戳
- 25. 在Python中比較兩個時間戳
- 26. 微created_at時間戳比較它在PHP
- 27. 比較WP_Query中的時間戳
- 28. 比較時間戳到日期
- 29. 比較PHP/Javascript中的時間戳
- 30. MySQL的時間戳比較問題
小心靜電'SimpleDateFormat' - 這不是線程安全的。 – Bozho 2011-03-28 21:11:48
是的,我寫得很快。只是試圖想出一個方法來實現這一點。我投了你的答案。幾乎相同的想法,但用線程安全的喬達時間。 – blong824 2011-03-28 21:13:19