Java日期 - Android时间选择器

时间:2011-08-05 19:47:37

标签: java android date datepicker

我在这里找到正确的格式时遇到了麻烦。我正试图从我的日期选择器中获取一个适当的日期来推入日期对象。

例如:

public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) 

public void onTimeSet(TimePicker view, int hourOfDay, int minute) 

那些活动处理程序会给我:2011,7,5,10,30(如果日期是2011年8月5日,时间是10:30)我在哪里可以获得Android中的Am / Pm?

我这样做但是它不能正常工作:

Date date = new Date(year,monthOfYear,dayOfMonth,hourOfDay,minute);

我需要完成Android等效的黑莓代码。黑莓日期选择器慷慨地提供了一个日期对象(而不是原始整数):

public void run() {
            DateTimePicker datePicker = DateTimePicker.createInstance();

            // Set the max time to 24 hours into the future. This allows for selecting clips
            // across time zones, but prevents the user from wandering off into no-mans' land.
            Calendar maxDateTime = Calendar.getInstance();
            maxDateTime.setTime(new Date(System.currentTimeMillis() + 24*3600*1000));
            datePicker.setMaximumDate(maxDateTime);

            if (datePicker.doModal())
            {
                Calendar selectedDate = datePicker.getDateTime();
                Date beforeDate = selectedDate.getTime();
                ClipStore.getInstance().getClips(camera, beforeDate);
            }
        }

3 个答案:

答案 0 :(得分:2)

使用日历:

Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
cal.set(Calendar.MONTH, monthOfYear);
cal.set(Calendar.DATE, dayOfMonth);
cal.set(Calendar.HOUR_OF_DAY, hourOfDay);
cal.set(Calendar.MINUTE, minute);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
Date date = cal.getTime();

一天中的小时从0到23。

答案 1 :(得分:0)

我相信hourOfDay使用24小时制,所以它应该是介于0和23之间的值。如果它大于> = 12,那就是PM。

答案 2 :(得分:0)

通过库存,Java.util将使用军事时间。又名10:30指的是上午10:30。晚上10:30将显示为22:30。如果你想将它转换为pm尝试这样的事情:

public String ampmChanger (String time) {
  int hour = (int)time.substring(0,2);
  String timeAppendage;
  if (hour > 12) { // For 1 PM and on
    hour -= 12; 
    timeAppendage = " PM"; 
  }
  else if (hour == 12) timeAppendage = " PM"; // For 12 pm
  else timeAppendage = " AM"; // For 0(12AM) to Noon

  return String.valueOf(hour)+time.substring(2)+timeAppendage;
}