编辑2:
这就是您如何创建两个Date
具有不同时间的对象并在之后进行比较:
Calendar calendar = Calendar.getInstance(); // By default the date and time is set to now
// Create first date
calendar.set(Calendar.HOUR_OF_DAY, 20);
calendar.set(Calendar.MINUTE, 5);
Date dateOne = calendar.getTime();
// Create second date
calendar.set(Calendar.HOUR_OF_DAY, 17);
calendar.set(Calendar.MINUTE, 36);
Date dateTwo = calendar.getTime();
// With before() you can check if a Date is before some other date
if(dateOne.before(dateTwo)) {
// dateOne is before dateTwo
} else {
// dateTwo is before dateOne
}
你也可以after()
用来检查一些Date
是否在其他一些之后Date
。
编辑:
Long
您在问题的最后一段中提到的值是以毫秒为单位的纪元时间。你真的不应该使用Time
框架中的这个类。我想你的意思是这个?您应该使用我在下面发布的解决方案。
原始答案:
我主要倾向于使用Date
对象作为容器。创建Date
实例的最佳实践是使用Calendar
对象。尝试这样的事情:
// We get a Calendar instance with getInstance();
Calendar calendar = Calendar.getInstance();
// Now we set the date we want.
calendar.set(Calendar.YEAR, 2014);
calendar.set(Calendar.MONTH, 4); // Be carefull, months start at 0. January = 0, Feburary = 1, March = 2,...
calendar.set(Calendar.DAY_OF_MONTH, 29);
calendar.set(Calendar.HOUR_OF_DAY, 20);
calendar.set(Calendar.MINUTE, 5);
// And finally we create the `Date` instance with getTime()
Date date = calendar.getTime();
// You can also do the reverse and set the time in a `Calendar` instance from a `Date` instance.
calendar.setTime(date);
这很简单,Calendar
也很强大,但我认为这不适合你。因为这个解决方案创建了一个Date
对象。因此,它存储的不仅仅是小时和分钟。
您必须决定这是否适用于您的情况。如果您真的只想存储小时和分钟,我建议您创建一个这样的自定义Time
类:
public class Time {
private int minute;
private int hour;
public int getMinute() {
return minute;
}
public void setMinute(int minute) {
this.minute = minute;
}
public int getHour() {
return hour;
}
public void setHour(int hour) {
this.hour = hour;
}
}
如有必要,您还可以向此类添加验证和计算Time
,但这一切都取决于您想要做什么。
我们可以给你一个更准确的答案如果你给我们更多关于你需要存储什么样的时间值的信息,更准确地说是否还必须存储任何日期信息?