在android中比较两次
我已尝试使用以下代码进行两次比较:在android中比较两次,android,time,toast,Android,Time,Toast,我已尝试使用以下代码进行两次比较: SimpleDateFormat sdf = new SimpleDateFormat("hh:mm"); Date inTime = sdf.parse("11:00"); Date outTime = sdf.parse("10:00"); if(inTime.compareTo(outTime) > 0){ Toast.makeText(this, "Out time should be greater th
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
Date inTime = sdf.parse("11:00");
Date outTime = sdf.parse("10:00");
if(inTime.compareTo(outTime) > 0){
Toast.makeText(this, "Out time should be greater than In time", Toast.LENGTH_SHORT).show();
}
以上代码运行良好
但如果我在11:00的时候给出时间,在12:00的时候给出时间,我就得到了更多的祝酒词
如果我把时间从12:00分配到12:59,我会收到上面的祝酒词。在其他情况下,上述代码工作正常
我做错了什么。请帮助我。更改SimpleDateFormat如下所示
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
以下是模式:
H Hour in day (0-23) Number 0
k Hour in day (1-24) Number 24
K Hour in am/pm (0-11) Number 0
h Hour in am/pm (1-12) Number 12
这将起作用。…如果您使用24小时时间格式,则使用
kk
而不是HH
SimpleDateFormat sdf = new SimpleDateFormat("kk:mm");
该类适用于EditText和TextView,如果时间在HH:mm a格式的From time之后,则将时间设置为EditText或TextView;博士
使用java.time
java.time
你有三个问题:
- 您正在使用可怕的旧日期时间类(
&date
),这些类在几年前被现代java.time类取代SimpleDateFormat
- 您的
格式应该是24小时制而不是12小时制的大写:hh:mm
李>hh:mm
- 您试图用一个表示日期的类来表示一天中的某个时间是不恰当的,该类的日期值为一天中的某个时间李>
LocalTime start = LocalTime.parse( "11:00" ) ;
LocalTime stop = LocalTime.parse( "12:00" ) ;
你可以比较
boolean isStopAfterStart = stop.isAfter( start ) ;
将经过的时间计算为持续时间
Duration d = Duration.between( start , stop ) ;
d、 toString():PT1H
您还可以,作为另一种方法,在开始之前检测停止时间
boolean isStopBeforeStart = d.isNegative() ;
注意事项:在没有日期和时区背景的情况下工作可能会产生不切实际的结果。这种方法忽略了时区中出现的异常情况,例如夏令时(DST)和特定地区的人们使用的其他转换为挂钟时间的情况。一个小时可以重复,也可以跳过。一天可以是23小时、23.5小时、23.75小时、25小时或其他小时数
关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,& 该项目现已启动,建议迁移到类 要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是 您可以直接与数据库交换java.time对象。使用兼容的或更高版本。不需要字符串,也不需要
java.sql.*
类
从哪里获得java.time类
- 、和更高版本-标准Java API的一部分,带有捆绑实现。
- Java9添加了一些次要功能和修复
- 及
- 大多数java.time功能都在中向后移植到Java6和Java7
-
- 更高版本的Android捆绑包实现了java.time类
- 对于早期Android(将“hh:mm”更改为“hh:mm”后),我得到了期望的结果。非常感谢Sanket.FYI,像
、java.util.date
、和java.util.Calendar
这样麻烦的旧日期时间类现在是遗留的,被这些类所取代。大多数java.time功能在项目中被重新移植到java 6和java 7。Further在项目中适应了早期的Android。请参见.FYI,像java.text.simpleDataFormat
、java.util.date
、和java.util.Calendar
这样麻烦的旧日期时间类现在是遗留的,被这些类所取代。大多数java.time功能在项目中被重新移植到java 6和java 7。进一步她已经适应了项目中早期的Android。请参阅。java.text.SimpleDateFormat
boolean isStopAfterStart = stop.isAfter( start ) ;
Duration d = Duration.between( start , stop ) ;
boolean isStopBeforeStart = d.isNegative() ;