繁体   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