2014-10-27 79 views
0

我想在我的Android應用程序分別處理的日期和時間,說分開我的意思是設定時間,而不會影響日期,反之亦然,所以,只把時間:日期和時間處理分別

Calendar calendar = Calendar.getInstance(); 
    calendar.set(Calendar.YEAR + 1990, Calendar.MONTH, Calendar.DAY_OF_MONTH, hours, minutes, 0); 

和它的作品完美,但僅設置日期時:

Calendar calendar = Calendar.getInstance(); 
    calendar.setTime(new_date); 

我面臨不得不設置爲00:00:00時間的問題,所以,我想節省時間值之前並按以下方式設置日期:

Calendar calendar = Calendar.getInstance(); 
    calendar.setTime(new_date); 
    calendar.set(Calendar.YEAR + 1990, Calendar.MONTH, Calendar.DAY_OF_MONTH, saved_hours, saved_minutes, 0); 

但是,使保存爲它的默認值(Calendar.YEAR日期|| .MONTH || .DAY_OF_MONTH)返回設備的日期值,這是1990年代的一個日期,儘管我在設置新日期之後刪除了該命令。

提示:不推薦使用方法(mDate.getYear()mDate.getMonth,.....等)。

+0

有陷阱,以不設置前的時間日期。例如,具有夏令時的區域設置會根據設置的日期轉換爲不同的GMT時間。 – mach 2014-10-27 13:48:50

+0

@mach我不明白你的意思 – 2014-10-27 13:58:05

+0

試試這段代碼calendar.set(Calendar.HOUR_OF_DAY,4); (Calendar.MINUTE,40); calendar.set(Calendar.MINUTE,40); calendar.set(Calendar.SECOND,0); – 2014-10-27 14:06:28

回答

0

設置日期和時間分開,你可以使用此代碼

Calendar cal = Calendar.getInstance(); 
    // Note: Months value is MonthNumber-1 (Jan is 0, Feb is 1 and so on). 
    cal.set(Calendar.MONTH, 9); 
    cal.set(Calendar.DATE, 24); 
    cal.set(Calendar.YEAR, 2013); 
    cal.set(Calendar.HOUR,1);   // when wanting to set it as 12 Hour system 
    cal.set(Calendar.HOUR_OF_DAY,13); // when wanting to set it as 24 Hour system 
    cal.set(Calendar.MINUTE,45); 
    cal.set(Calendar.SECOND,52); 

    // set the year,month and day to something else 
    //set(int year,int month,int day) 
    cal.set(1995, 5, 25); 


// set(int year,int month,int day,int hourOfDay, int minute,int second) 
    cal.set(1995, 5, 25, 04, 15, 20); 
+0

非常感謝,idk我如何錯過了這種方法 – 2014-10-27 14:57:04