Android studio 如何在android日期选择器中自定义日期格式
我正在尝试用自定义格式从日期选择器对话框中捕获日期,如dd-MMM-yyyy(1982年8月10日)。我使用了以下代码,但只接受整数值作为月份而不是字符串。请参阅我的注释代码,这是我想从日期选择器发送到编辑文本Android studio 如何在android日期选择器中自定义日期格式,android-studio,Android Studio,我正在尝试用自定义格式从日期选择器对话框中捕获日期,如dd-MMM-yyyy(1982年8月10日)。我使用了以下代码,但只接受整数值作为月份而不是字符串。请参阅我的注释代码,这是我想从日期选择器发送到编辑文本 <EditText android:id="@+id/date" android:layout_width="200dp" android:layout_height="wrap_content" androi
<EditText
android:id="@+id/date"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="#d4d4d4"
android:inputType="none"
android:textIsSelectable="true"
android:hint="Select Date..."
android:padding="15dp"
android:textColor="#897"
android:textColorHint="#090"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
请任何人指导我如何将月份作为字符串返回。提前谢谢。以下是我的代码
<EditText
android:id="@+id/date"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="#d4d4d4"
android:inputType="none"
android:textIsSelectable="true"
android:hint="Select Date..."
android:padding="15dp"
android:textColor="#897"
android:textColorHint="#090"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
XML
<EditText
android:id="@+id/date"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="#d4d4d4"
android:inputType="none"
android:textIsSelectable="true"
android:hint="Select Date..."
android:padding="15dp"
android:textColor="#897"
android:textColorHint="#090"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
编辑:
<EditText
android:id="@+id/date"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="#d4d4d4"
android:inputType="none"
android:textIsSelectable="true"
android:hint="Select Date..."
android:padding="15dp"
android:textColor="#897"
android:textColorHint="#090"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initiate the date picker and a button
date = (EditText) findViewById(R.id.date);
bbc = (EditText) findViewById(R.id.editText2);
// perform click event on edit text
date.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// calender class's instance and get current date , month and year from calender
final Calendar c = Calendar.getInstance();
int mYear = c.get(Calendar.YEAR); // current year
try {
c.setTime(new SimpleDateFormat("MMM").parse("July"));
int mMonth = c.get(Calendar.MONTH) + 1;
//String mMonth = c.getDisplayName(Calendar.MONTH, Calendar.LONG, Locale.getDefault());
int mDay = c.get(Calendar.DAY_OF_MONTH); // current day
// SimpleDateFormat mMonth = new SimpleDateFormat("MMM");
// String Month_name = mMonth.format(c);
// date picker dialog
datePickerDialog = new DatePickerDialog(MainActivity.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
// set day of month , month and year value in the edit text
date.setText(dayOfMonth + "/"
+ (monthOfYear + 1) + "/" + year);
}
}, mYear, mMonth, mDay);
datePickerDialog.show();
} catch (ParseException e) {
e.printStackTrace();
}
}
});
}
}
更改为以下内容:
<EditText
android:id="@+id/date"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="#d4d4d4"
android:inputType="none"
android:textIsSelectable="true"
android:hint="Select Date..."
android:padding="15dp"
android:textColor="#897"
android:textColorHint="#090"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
// date picker dialog
datePickerDialog = new DatePickerDialog(MainActivity.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth){
Calendar calendar = Calendar.getInstance();
calendar.set(year, monthOfYear, dayOfMonth);
SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy");
String dateString = format.format(calendar.getTime());
date.setText(dateString);
}
}, mYear, mMonth, mDay);
更改为以下内容:
<EditText
android:id="@+id/date"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="#d4d4d4"
android:inputType="none"
android:textIsSelectable="true"
android:hint="Select Date..."
android:padding="15dp"
android:textColor="#897"
android:textColorHint="#090"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
// date picker dialog
datePickerDialog = new DatePickerDialog(MainActivity.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth){
Calendar calendar = Calendar.getInstance();
calendar.set(year, monthOfYear, dayOfMonth);
SimpleDateFormat format = new SimpleDateFormat("dd-MMM-yyyy");
String dateString = format.format(calendar.getTime());
date.setText(dateString);
}
}, mYear, mMonth, mDay);
使用“EEEE dd”代替“dd”获取当天的名称。
比如2019年10月25日星期五
<EditText
android:id="@+id/date"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="#d4d4d4"
android:inputType="none"
android:textIsSelectable="true"
android:hint="Select Date..."
android:padding="15dp"
android:textColor="#897"
android:textColorHint="#090"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
// date picker dialog
datePickerDialog = new DatePickerDialog(MainActivity.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,int monthOfYear, int dayOfMonth)
{
Calendar calendar = Calendar.getInstance();
c.set(year , monthOfYear , dayOfMonth);
SimpleDateFormat format = new SimpleDateFormat("EEEE dd-MMM-yyyy");
String datestring=format.format(calendar.getTime());
editText.setText(datestring);
}
}, mYear, mMonth, mDay);
使用“EEEE dd”代替“dd”获取当天的名称。
比如2019年10月25日星期五
<EditText
android:id="@+id/date"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="#d4d4d4"
android:inputType="none"
android:textIsSelectable="true"
android:hint="Select Date..."
android:padding="15dp"
android:textColor="#897"
android:textColorHint="#090"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
// date picker dialog
datePickerDialog = new DatePickerDialog(MainActivity.this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,int monthOfYear, int dayOfMonth)
{
Calendar calendar = Calendar.getInstance();
c.set(year , monthOfYear , dayOfMonth);
SimpleDateFormat format = new SimpleDateFormat("EEEE dd-MMM-yyyy");
String datestring=format.format(calendar.getTime());
editText.setText(datestring);
}
}, mYear, mMonth, mDay);
试试这个
c.getDisplayName(Calendar.MONTH,Calendar.SHORT,Locale.getDefault())
然后你会得到Jan
或者这个c.getDisplayName(Calendar.MONTH,Calendar.LONG,Locale.getDefault())代码>一月
谢谢回复。OnDateSet方法仅获取三个整数作为参数,当我将月份转换为字符串参数时,它开始给出错误。请参阅此代码公共void onDateSet(日期选择器视图,int year,int monthOfYear,int dayOfMonth)。请导游。好的。您希望将字符串month name转换为整数值并作为参数传递。正确的?这有帮助吗?试试这个c.getDisplayName(Calendar.MONTH,Calendar.SHORT,Locale.getDefault())
然后你会得到Jan
或者这个c.getDisplayName(Calendar.MONTH,Calendar.LONG,Locale.getDefault())代码>一月
谢谢回复。OnDateSet方法仅获取三个整数作为参数,当我将月份转换为字符串参数时,它开始给出错误。请参阅此代码公共void onDateSet(日期选择器视图,int year,int monthOfYear,int dayOfMonth)。请导游。好的。您希望将字符串month name转换为整数值并作为参数传递。正确的?这有帮助吗?很抱歉回复太晚,我正忙于其他任务,但当我运行你的代码并测试它时,我感觉像在空中飞翔。谢谢rock…很抱歉回复晚了,我正忙于其他任务,但当我运行你的代码并测试它时,我感觉像在空中飞翔。谢谢你摇滚。。。