如何从 DatePicker toString 方法中删除日期?
How to remove date from DatePicker toString method?
我刚刚开始通过 Android 的 big nerd ranch 指南学习 android。我在 android 中编写了一个简单的程序,让用户 select 约会。在使用 getDate().toString() 方法打印日期时,我也得到了时间。我想删除那个时间栏。到目前为止,我已经尝试通过意图传回 datePicker、日期、月份或年份,但它不起作用。
这就是我的 DatePicker 代码:
public Dialog onCreateDialog(Bundle savedInstanceState)
{
// super.onCreate(savedInstanceState);
date=(Date) getArguments().getSerializable(Extra_Tag);
Calendar calendar=Calendar.getInstance();
calendar.setTime(date);
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH);
int day=calendar.get(Calendar.DAY_OF_MONTH);
View view=getActivity().getLayoutInflater().inflate(R.layout.date_picker, null);
DatePicker datePicker= (DatePicker) view.findViewById(R.id.date_button);
datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
date=new GregorianCalendar(year,monthOfYear,dayOfMonth).getTime();
getArguments().putSerializable(Extra_Tag,date);
}
});
return new AlertDialog.Builder(getActivity()).setView(view).setTitle(R.string.date_picker).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
sendResult(Activity.RESULT_OK);
}
}).create();
}
private void sendResult(int resultCode)
{
if(getTargetFragment()==null)
{
return;
}
Intent i=new Intent();
i.putExtra(Extra_Tag,date);
getTargetFragment().onActivityResult(getTargetRequestCode(),resultCode,i);
}
这里的调用 activity 看起来像:
public void onActivityResult(int requestCode, int resultCode,Intent data)
{
if(resultCode!= Activity.RESULT_OK)
return;
if(requestCode==Request_code)
{
Date date=(Date) data.getSerializableExtra(Extra_Tag);
crime.setDate(date);
dateButton.setText(crime.getDate().toString());
}
}
例如,这是 Fri JUL 17 22:46:42 CDT 2015 的示例输出。我的动机是通过删除时间来显示日期。
请详细解释。谢谢
只需写两行就可以转换日期
例如
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// Set your date format
String currentData = sdf.format(date);
尝试使用
Calendar c = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String todayDate = df.format(c.getTime());
我刚刚开始通过 Android 的 big nerd ranch 指南学习 android。我在 android 中编写了一个简单的程序,让用户 select 约会。在使用 getDate().toString() 方法打印日期时,我也得到了时间。我想删除那个时间栏。到目前为止,我已经尝试通过意图传回 datePicker、日期、月份或年份,但它不起作用。 这就是我的 DatePicker 代码:
public Dialog onCreateDialog(Bundle savedInstanceState)
{
// super.onCreate(savedInstanceState);
date=(Date) getArguments().getSerializable(Extra_Tag);
Calendar calendar=Calendar.getInstance();
calendar.setTime(date);
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH);
int day=calendar.get(Calendar.DAY_OF_MONTH);
View view=getActivity().getLayoutInflater().inflate(R.layout.date_picker, null);
DatePicker datePicker= (DatePicker) view.findViewById(R.id.date_button);
datePicker.init(year, month, day, new DatePicker.OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
date=new GregorianCalendar(year,monthOfYear,dayOfMonth).getTime();
getArguments().putSerializable(Extra_Tag,date);
}
});
return new AlertDialog.Builder(getActivity()).setView(view).setTitle(R.string.date_picker).setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
sendResult(Activity.RESULT_OK);
}
}).create();
}
private void sendResult(int resultCode)
{
if(getTargetFragment()==null)
{
return;
}
Intent i=new Intent();
i.putExtra(Extra_Tag,date);
getTargetFragment().onActivityResult(getTargetRequestCode(),resultCode,i);
}
这里的调用 activity 看起来像:
public void onActivityResult(int requestCode, int resultCode,Intent data)
{
if(resultCode!= Activity.RESULT_OK)
return;
if(requestCode==Request_code)
{
Date date=(Date) data.getSerializableExtra(Extra_Tag);
crime.setDate(date);
dateButton.setText(crime.getDate().toString());
}
}
例如,这是 Fri JUL 17 22:46:42 CDT 2015 的示例输出。我的动机是通过删除时间来显示日期。 请详细解释。谢谢
只需写两行就可以转换日期
例如
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// Set your date format
String currentData = sdf.format(date);
尝试使用
Calendar c = Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String todayDate = df.format(c.getTime());