簡體   English   中英

將Java getTime時間與代表日期的字符串進行比較

[英]Compare java getTime time with strings representing a date

每次將特定方法的日期存儲在ab sqlite數據庫中的3列中(我分別將其存儲在日期,月份和年份中)分別存儲在3列中。

現在,我想將其與用戶使用該應用的實際日期進行比較。

Date currentTime = Calendar.getInstance().getTime()

我得到了這個日期,但是如何將其與從數據庫中獲得的字符串進行比較? 謝謝!

使用java.time

您的問題是許多其他問題的重復。 簡而言之...

使用java.time類,而不要使用麻煩的舊式舊版日期時間類。 對於Android,請使用ThreeTen-Backport和ThreeTenABP項目中的庫。

獲取今天的日期。

ZoneId z = ZoneId.of( "America/Montreal" ) )
LocalDate today = LocalDate.now( z );

獲取部分日期。

int y = today.getYear() ;
int m = today.getMonthValue() ;
int d = today.getDayOfMonth() ;

查詢數據庫。

myPreparedStatement.setInt( 1 , y ) ;
myPreparedStatement.setInt( 2 , m ) ;
myPreparedStatement.setInt( 3 , d ) ;

正如其他人所建議的那樣,您應該在數據庫中使用日期時間類型來存儲日期時間值,而不是僅使用整數作為片段。


關於java.time

java.time框架內置於Java 8及更高版本中。 這些類取代了麻煩的舊的舊式日期時間類,例如java.util.DateCalendarSimpleDateFormat

現在處於維護模式Joda-Time項目建議遷移到java.time類。

要了解更多信息,請參見Oracle教程 並在Stack Overflow中搜索許多示例和說明。 規格為JSR 310

在哪里獲取java.time類?

ThreeTen-Extra項目使用其他類擴展了java.time。 該項目為將來可能在java.time中添加內容提供了一個試驗場。 您可以在這里找到一些有用的類,比如IntervalYearWeekYearQuarter ,和更多

嘗試這個:

SimpleDateFormat formattedDate = new SimpleDateFormat("dd/MM/yyyy");  
String strDate= formattedDate.format(date);  

如模板中所示,它將為您提供日期。 現在,只需以相同的方式(dd / MM / yyyy)從SQLite數據中構建一個String,就可以像本文中所示對它們進行簡單比較: https : //stackoverflow.com/questions/513832/how-do-i -compare串式的Java

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM