我得到两个日期作为字符串值,我想检查开始时间是否早于结束时间。我不使用SimpleDateFormat
将它们转换为日期,而是按原样进行比较,如下所示:
String startTime = "2013-01-02 14:25:56";
String endTime = "2013-01-02 14:30:56";
if(endTime.compareTo(startTime) > 0){
System.out.println("End time is greater than start time");
}
真的有必要将它们转换为日期并进行比较吗?我会错过什么吗?我做的是对的吗?
发布于 2013-01-03 00:06:47
这不是一种好的做法,也不是一种代码的味道。
你失去了语义上的正确和可读的代码。(以及可扩展性、时区和其他已经说过的正确的东西)
你不会想要比较两个String
对象,你想要比较两个Date
对象-所以就这样做,比较两个Date
对象。
如果您创建单元测试并测试您的比较方法,您将永远不会编写一个方法来在任何情况下都正确地比较2个"string"-dates,而不将它们转换为日期。
发布于 2013-01-03 00:03:38
关于
"999-01-01 00:00:00"
"10000-01-01 00:00:00"
发布于 2013-01-03 00:00:54
为了安全起见,我建议先将它们转换为日期,但只要您确定格式(或时区等)在你身上永远不会改变,那么日期比较和字符串格式的比较应该总是等价的。
https://stackoverflow.com/questions/14125038
复制相似问题