我的申请表上有2个按钮
* button start =>保存'现在'时间(保存日期对象)
* button end =>这也将“现在”时间保存到其他对象(保存日期对象)
我看到我保存的对象没问题。
但是当我尝试从这个Date对象生成一个字符串时,我得到的是现在的时间,而不是我之前保存的'开始日期'和'结束日期'上保存的时间。
我写的获取Date并创建一个字符串(仅限时间)的方法是:
public static String ConvertToHourWithMin(Date date){
String retVal;
Calendar.getInstance().setTime(date);
int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
int min = Calendar.getInstance().get(Calendar.MINUTE);
retVal = String.format("%s:%s", hour < 10 ? "0" + hour : String.valueOf(hour),
min < 10 ? "0" + min : String.valueOf(min));
return retVal;
}
在调试时,我看到Date参数是正确的。 但是这个方法出来的字符串不是日期..它的'现在'时间。
我做错了什么?
答案 0 :(得分:2)
每次调用Calendar.getInstance()
时,它都会返回一个当前时间设置的新实例。您需要保留对您设置日期的Calendar
对象的引用,并从中获取时间:
public static String ConvertToHourWithMin(Date date){
String retVal;
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int hour = cal.get(Calendar.HOUR_OF_DAY);
int min = cal.get(Calendar.MINUTE);
retVal = String.format("%s:%s", hour < 10 ? "0" + hour : String.valueOf(hour),
min < 10 ? "0" + min : String.valueOf(min));
return retVal;
}