2013-10-31 18 views
0

我有一個要求,在這裏我需要重寫日期喬達+我們能覆蓋劃時代日期與今天的日期

當我解析時間(HH:MM:SS)使用的SimpleDateFormat,我得到的是對象日(星期四1月1個HH:mm:ss的IST 1970) 我想在此改變劃時代最新與今天的日期(不包括時間)。

有在喬達/ JDK的API一個或方法,它可以幫我這個忙

+0

你爲什麼不嘗試' SimpleDateFormat的SDF =新的SimpleDateFormat( 「YYYY-MM-dd'T'」); 日期= sdf.parse(strDate);'爲jodatime你可以得到一些信息在這裏-HTTP://joda-time.sourceforge.net/userguide.html#Working_with_DateTime – Yup

回答

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 

要小心的是,這並不重置todayCalendar的毫秒數,如果這一點很重要......

+1

注意:通過直接設置日曆實例的一個屬性必須檢查非法日期。 (特定月份是否存在日期?特定日期是否存在小時(夏令時問題)?等等) – mschenk74