アプリにはDatePicker
とTimePicker
があります。選択された日付と時刻の値を取得する方法を教えてもらえますか?私が言いたいのは、EditText
については、
_final EditText name = (EditText) this.findViewById(R.id.nametext);
_
name.getText().toString()
を使用してデータをキャストできます。
同様に、DatePickerとTimePickerの値を文字列にどのように取得できますか?
DatePickerには
_getYear()
getMonth()
getDayOfMonth()
_
datePickerからDateオブジェクトを作成するには、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()));
}
Androidの DateFormat クラスを見ることをお勧めします。 Androidのドキュメントで言及されているDateFormatをインポートするよう注意してください。その後、達成したいフォーマットはどれも本当に簡単です。2012年8月12日の基本的な場合は、これを行うことができます。
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は、レイアウトxmlファイルのdatePickerです。これにより、最後に文字列が作成され、サーバーに保存または送信できます。
DatePickerとTimePickerから日付と時刻を取得する簡単な方法
警告:JodaTime 's DateTime
。好きなものを使用するように変更できます。
// 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());
p.s dpとtpは、Androidの日付ピッカーと時間ピッカーです。
Format Ex:24 December 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()));
StringBuilder sb=new StringBuilder();
sb.append(myYear).append("-").append(myMonth).append("-").append(myDay);
String str=sb.toString();
edittext.setText(str);