Intereting Posts
Как заставить приложение Android перезагрузить заголовок активности, соответствующий изменению языка? ActionBarSherlock – вкладки, отображающие верхнюю панель действий с пользовательским представлением Android Sqlite – ошибка «Нет такой таблицы» Могут ли приложения Android запрашивать дополнительные разрешения во время выполнения? Сделать новую активность за старой в процессе перехода Встроенный баннер приложений для Chrome и добавление на главный экран Как ускорить загрузку фрагментов? Tab + ViewPager не обновляет вместо этого показывает странное предупреждение ожидаемое состояние 3 найдено 2 Иногда Logcat показывает, что «GREF увеличился до 301», Вложения SQLite становятся медленнее даже при транзакциях Java.lang.VerifyError при запуске тестов на Android с testCoverageEnabled = true Реализовать индикатор активности вращения, аналогичный iOS в Android Стрелка вверх не отображается после вызова ActionBarDrawerToggle.setDrawerIndicatorEnabled (false) Как обрабатывать уведомления типа fcm, когда приложение не работает или закрыто в iOS, подобное андроиду? В фоновом режиме проверьте Play Store, чтобы определить, доступно ли приложение для загрузки на устройство

Кастинг и получение значений из набора даты и выбора времени в android

У меня есть DatePicker и TimePicker в моем приложении. Может ли кто-нибудь сказать мне, как получить значения даты и времени, которые выбраны ??? Я хочу сказать, что для EditText мы можем объявить как

 final EditText name = (EditText) this.findViewById(R.id.nametext); 

И мы можем передавать данные из него с помощью name.getText().toString() .

Точно так же как мы можем получить значения DatePicker и TimePicker для строки?

Solutions Collecting From Web of "Кастинг и получение значений из набора даты и выбора времени в android"

DatePicker имеет

 getYear() getMonth() getDayOfMonth() 

Для создания объекта Date из DatePicker вы бы сделали new Date(datePicker.getYear() - 1900, datePicker.getMonth(), datePicker.getDayOfMonth());

Обратите внимание, что этот конструктор устарел на уровне API 1 – обратитесь к ответу andrescanavesi за более подходящий способ создания объекта Date.

TimePicker имеет

 getCurrentHour() getCurrentMinute() 

Я использую это:

  /** * * @param datePicker * @return a java.util.Date */ public static java.util.Date getDateFromDatePicket(DatePicker datePicker){ int day = datePicker.getDayOfMonth(); int month = datePicker.getMonth(); int year = datePicker.getYear(); Calendar calendar = Calendar.getInstance(); calendar.set(year, month, day); return calendar.getTime(); } 
 date=(EditText)findViewById(R.id.date_of_birth_textfield); date.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub showDialog(DATE_DIALOG_ID); } }); mYear = c.get(Calendar.YEAR); mMonth = c.get(Calendar.MONTH); mDay = c.get(Calendar.DAY_OF_MONTH); updateDisplay(); protected Dialog onCreateDialog(int id) { switch(id) { case DATE_DIALOG_ID: return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay); } return null } private DatePickerDialog.OnDateSetListener mDateSetListener= new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // TODO Auto-generated method stub System.out.println("calendar view shown.."+view.getCalendarViewShown()); c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, monthOfYear); c.set(Calendar.DAY_OF_MONTH, dayOfMonth); mYear = c.get(Calendar.YEAR); mMonth = c.get(Calendar.MONTH); mDay = c.get(Calendar.DAY_OF_MONTH); updateDisplay(); // mMonth = monthOfYear; // mDay = dayOfMonth; } }; private void updateDisplay() { date.setText( new StringBuilder() // Month is 0 `based` so add 1 .append(mYear).append("-").append(mMonth + 1).append("-").append(mDay).append("")); //date.setText(fmtDateAndTime.format(c.getTime())); } 

Я бы предложил посмотреть на класс DateFormat в android. Будьте осторожны, чтобы импортировать DateFormat, упомянутый в документах android. После этого любое форматирование, которое вы хотите достичь, действительно прост. Для основного 12 августа 2012 года вы можете это сделать.

 DatePicker myDatePicker = (DatePicker) findViewById(R.id.mydatepicker); String selectedDate = DateFormat.getDateInstance().format(myDatePicker.getCalendarView().getDate()); 

Посмотрите на класс DateFormat, чтобы получить различные другие конфигурации.

Объединил все ответы и сделал из него фрагмент кода.

Импорт datePicker в верхней части вашего класса:

 import android.widget.DatePicker; 

Внутри класса объявите следующую переменную:

 private DatePicker dobPicker; 

И вот код, который нужно сделать в событии нажатия кнопки:

  dobPicker = (DatePicker)findViewById(R.id.dobPicker); Integer dobYear = dobPicker.getYear(); Integer dobMonth = dobPicker.getMonth(); Integer dobDate = dobPicker.getDayOfMonth(); StringBuilder sb=new StringBuilder(); sb.append(dobYear.toString()).append("-").append(dobMonth.toString()).append("-").append(dobDate.toString()).append(" 00:00:00"); String dobStr=sb.toString(); 

Где в R.id.dobPicker, dobPicker – ваш datePicker в XML-файле макета. Это дает вам строку в конце, которая может быть сохранена или отправлена ​​на сервер.

getDateTimeFromPickers ()

Простой способ получения даты и времени от DatePicker и TimePicker

Предостережение: в качестве возвращаемого значения используется DateTime JodaTime . Вы можете изменить его, чтобы использовать все, что вам нравится.

  // Gets the Date and Time from a DatePicker and TimePicker and return a JodaTime DateTime from them, in current timezone. // private DateTime getDateTimeFromPickers( int DatePickerId, int TimePickerId ) { DatePicker dp = (DatePicker) findViewById(DatePickerId); TimePicker tp = (TimePicker) findViewById(TimePickerId); String year = Integer.toString(dp.getYear()) ; String month = StringUtils.leftPad( Integer.toString(dp.getMonth() + 1), 2, "0" ); String day = StringUtils.leftPad( Integer.toString(dp.getDayOfMonth()), 2, "0" ); String hour = StringUtils.leftPad( Integer.toString(tp.getCurrentHour()), 2, "0" ); String minutes = StringUtils.leftPad( Integer.toString(tp.getCurrentMinute()), 2, "0" ); String dateTime = year + "-" + month + "-" + day + "T" + hour + ":" + minutes + ":00.000"; return DateTime.parse(dateTime); } 

Надеюсь, это поможет.

JP

Я бы сделал это как:

  Calendar calendar = Calendar.getInstance(); calendar.set(dp.getYear(), dp.getMonth(), dp.getDayOfMonth(), Tp.getCurrentHour(), Tp.getCurrentMinute()); DateFormat gmtFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); TimeZone gmtTime = TimeZone.getTimeZone("GMT"); gmtFormat.setTimeZone(gmtTime); String mydate = ""+ gmtFormat.format(calendar.getTime()); 

Ps dp и tp – выбор даты и выбор времени в android.

 StringBuilder sb=new StringBuilder(); sb.append(myYear).append("-").append(myMonth).append("-").append(myDay); String str=sb.toString(); edittext.setText(str); 

Попробуйте ниже с помощью формата Ex: 24 декабря 2014 года.

  DatePicker datePicker = (DatePicker) findViewById(R.id.datepicker_inspection); SimpleDateFormat df = new SimpleDateFormat("dd MMMM yyyy"); String inspectiondate = df.format(new Date(datePicker.getYear() - 1900, datePicker.getMonth(), datePicker.getDayOfMonth()));