Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java日期-Android时间选择器_Java_Android_Date_Datepicker - Fatal编程技术网

Java日期-Android时间选择器

Java日期-Android时间选择器,java,android,date,datepicker,Java,Android,Date,Datepicker,我在这里找不到正确的格式。我正试图从我的android日期选择器中获取一个合适的日期,以便将其放入日期对象中 例如: 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

我在这里找不到正确的格式。我正试图从我的android日期选择器中获取一个合适的日期,以便将其放入日期对象中

例如:

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),我在安卓系统中从哪里获得Am/Pm

我正在这样做,但它没有正常工作:

Date date = new Date(year,monthOfYear,dayOfMonth,hourOfDay,minute);
我需要完成这个黑莓代码的Android等价物。Blackberry日期选择器优雅地提供了一个日期对象(而不是原始整数):


我认为hourOfDay使用24小时时间,因此它应该是一个介于0和23之间的值(包括0和23)。如果大于等于12,则为PM。

使用日历:

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。

根据股票,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;
}

如何从日历中获取日期对象?没有.getDate()方法。对不起。它是getTime(),您可以通过浏览日历javadoc发现:
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;
}