2014-10-27 90 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