无法将日期对象另存为字符串

时间:2015-11-14 12:34:05

标签: android

我的申请表上有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参数是正确的。 但是这个方法出来的字符串不是日期..它的'现在'时间。

我做错了什么?

1 个答案:

答案 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;
}