0

我有一个要求,我需要覆盖日期

当我使用 SimpleDateFormat 解析时间(hh:mm:ss)时,我得到的是日期对象(Thu Jan 01 hh:mm:ss IST 1970)我想用今天的日期(没有时间)覆盖纪元日期。

joda/jdk中是否有api或方法可以为我做这个

4

1 回答 1

0

基本上,你不能,但你可以做的是将“时间”转换中的值与另一个日期(如今天)合并......例如

try {
    Date date = new SimpleDateFormat("hh:mm:ss").parse("13:30:51");
    System.out.println(date);

    Calendar time = Calendar.getInstance();
    time.setTime(date);

    Calendar today = Calendar.getInstance();
    today.set(Calendar.HOUR_OF_DAY, time.get(Calendar.HOUR_OF_DAY));
    today.set(Calendar.MINUTE, time.get(Calendar.MINUTE));
    today.set(Calendar.SECOND, time.get(Calendar.SECOND));

    System.out.println(today.getTime());
} catch (ParseException ex) {
    ex.printStackTrace();
}

用更少的代码可能有一种非常奇特的方法,但我试图避免不推荐使用的方法。

对我来说,这输出......

Thu Jan 01 13:30:51 EST 1970
Thu Oct 31 13:30:51 EST 2013

但请注意,这不会重置 的毫秒值today Calendar,以防万一这很重要......

于 2013-10-31T05:19:03.983 回答