时间将被保存为字符串,有没有办法将字符串转换为时间,然后检查它是否等于或大于当前时间,或者是否小于当前时间?
如果这个问题之前已经被问过很多次了,很抱歉!
发布于 2012-07-13 08:36:02
将字符串转换为日期格式的方式如下:
我假设您使用yyyy-MM-dd HH:mm:ss格式
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd, HH:mm:ss");
formatter.setLenient(false);
String oldTime = "2012-07-11 10:55:21";
Date oldDate = formatter.parse(oldTime);这就是获取当前时间的方法
Calendar c = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String currentDate = df.format(c.getTime());最后,此tutorial将向您展示如何在java中比较日期。
发布于 2012-07-13 08:17:59
时间是以字符串形式保存的时间戳,还是实际的字符串?如果是时间戳,您可以始终执行以下操作:
long timestamp = Long.parseLong(stringTimestamp);发布于 2016-08-15 08:24:25
其他答案是正确的,但已经过时了。请改用java.time类。
LocalTime
LocalTime类表示一天中的某个时间。
LocalTime input = LocalTime.parse( "20:15" );要获取当前时间,请指定时区。对于任何给定的时刻,一天中的时间因时区而异。
ZoneId zoneId = ZoneId.of( "America/Montreal" );
LocalTime now = LocalTime.now( zoneId );您可以使用equals、compareTo、isBefore和isAfter方法进行比较。
Boolean input isAfterNow = input.isAfter( now );您可以生成一个字符串,以标准ISO8601格式和24小时时钟HH:MM:SS.SSSSSSSSS表示此时间值。打电话给toString就行了。
String output = now.toString();java.time
java.time框架内置于Java8和更高版本中。这些类取代了旧的麻烦的日期时间类,如java.util.Date、.Calendar和java.text.SimpleDateFormat。
现在maintenance mode中的Joda-Time项目建议迁移到java.time。
要了解更多信息,请参阅Oracle Tutorial。和搜索堆栈溢出,以获得许多示例和解释。
在ThreeTen-Backport中,java.time的大部分功能被向后移植到Java6和7中,并在ThreeTenABP中进一步适应于Android。
ThreeTen-Extra项目使用额外的类扩展了java.time。这个项目是未来可能添加到java.time中的试验场。
https://stackoverflow.com/questions/11462498
复制相似问题