我有一个要求,我需要覆盖日期
当我使用 SimpleDateFormat 解析时间(hh:mm:ss)时,我得到的是日期对象(Thu Jan 01 hh:mm:ss IST 1970)我想用今天的日期(没有时间)覆盖纪元日期。
joda/jdk中是否有api或方法可以为我做这个
基本上,你不能,但你可以做的是将“时间”转换中的值与另一个日期(如今天)合并......例如
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
,以防万一这很重要......