Java 从SimpleDataFormat到SimpleDataFormat解析并格式化日期选择器日期
我正在尝试将DatePicker日期格式化为SimpleDateFormat(“yyyy-MM-dd HH:MM:ss Z”)。有人告诉我,我需要使用SimpleDataFormatter将其解析为最新对象SimpleDataFormat(“yyyy-MM-dd”),然后将其格式化为我需要的格式,如下所示。但是,我在try-catch块中得到了一个错误“replicate local variable eDate”。请任何专家审查我的代码并提出建议 更新Java 从SimpleDataFormat到SimpleDataFormat解析并格式化日期选择器日期,java,android,simpledateformat,Java,Android,Simpledateformat,我正在尝试将DatePicker日期格式化为SimpleDateFormat(“yyyy-MM-dd HH:MM:ss Z”)。有人告诉我,我需要使用SimpleDataFormatter将其解析为最新对象SimpleDataFormat(“yyyy-MM-dd”),然后将其格式化为我需要的格式,如下所示。但是,我在try-catch块中得到了一个错误“replicate local variable eDate”。请任何专家审查我的代码并提出建议 更新 @Override protec
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case EDATE_DIALOG_ID:
return new DatePickerDialog(this,
sDateSetListener, mYear, mMonth, mDay);
}
return null;
}
private DatePickerDialog.OnDateSetListener sDateSetListener =
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view,
int year, int monthOfYear, int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
updateDate();
}
};
private void updateDate() {
inputEdate.setText(
new StringBuilder()
.append(mMonth + 1).append("-")
.append(mDay).append("-")
.append(mYear).append(" "));
}
class CreateNewRequest extends AsyncTask<String, String, String> {
protected String doInBackground(String... args) {
Calendar c = Calendar.getInstance();
SimpleDateFormat firstDateFormat =
new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat secondDateFormat =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
String eDate = inputEdate.getText().toString();
try{
Date date = firstDateFormat.parse(eDate);
String eDate = secondDateFormat.format(date);
}catch(ParseException e) {
e.printStackTrace();
}
String submitDate = secondDateFormat.format(c.getTime());
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("submitDate", submitDate));
params.add(new BasicNameValuePair("request_date", eDate));
}
@覆盖
受保护的对话框onCreateDialog(int id){
开关(id){
案例数据对话框ID:
返回新的DatePickerDialog(此,
SDATestListener,mYear,Ammonth,mDay);
}
返回null;
}
专用DatePickerDialog.OnDateSetListener sDateSetListener=
新建DatePickerDialog.OnDateSetListener(){
公共无效onDateSet(日期选择器视图,
整数年,整数月,整数月){
迈耶=年;
Ammonth=蒙托夫年;
mDay=月的第几天;
updateDate();
}
};
私有void updateDate(){
inputte.setText(
新的StringBuilder()
.append(mm+1)。append(“-”)
.append(mDay)。append(“-”)
.append(mYear)。append(“”);
}
类CreateNewRequest扩展了AsyncTask{
受保护的字符串doInBackground(字符串…args){
Calendar c=Calendar.getInstance();
SimpleDataFormat firstDateFormat=
新的简化格式(“yyyy-MM-dd”);
SimpleDateFormat secondDateFormat=
新的简化格式(“yyyy-MM-dd HH:MM:ss Z”);
字符串eDate=Inputute.getText().toString();
试一试{
Date-Date=firstDateFormat.parse(eDate);
字符串eDate=secondDateFormat.format(日期);
}捕获(解析异常){
e、 printStackTrace();
}
字符串submitDate=secondDateFormat.format(c.getTime());
List params=new ArrayList();
添加参数(新的BasicNameValuePair(“submitDate”,submitDate));
添加参数(新的BasicNameValuePair(“请求日期”,eDate));
}
您需要复制变量eDate
的声明。如果您想要覆盖该值,只需删除类型声明字符串即可,如下所示:
eDate = df.format(date);
编辑:
我想你想要的是:
class CreateNewRequest extends AsyncTask<String, String, String> {
protected String doInBackground(String... args) {
Calendar c = Calendar.getInstance();
SimpleDateFormat firstDateFormat = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat secondDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
String eDate = inputEdate.getText().toString();
try {
Date date = firstDateFormat.parse(eDate);
eDate = secondDateFormat.format(date);
submitDate = secondDateFormat.format(c.getTime());
} catch(ParseException e) {
e.printStackTrace();
}
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("submitDate", submitDate));
params.add(new BasicNameValuePair("request_date", eDate));
}
}
类CreateNewRequest扩展了AsyncTask{
受保护的字符串doInBackground(字符串…args){
Calendar c=Calendar.getInstance();
SimpleDateFormat firstDateFormat=新的SimpleDateFormat(“yyyy-MM-dd”);
SimpleDateFormat secondDateFormat=新的SimpleDateFormat(“yyyy-MM-dd HH:MM:ss Z”);
字符串eDate=Inputute.getText().toString();
试一试{
Date-Date=firstDateFormat.parse(eDate);
eDate=secondDateFormat.format(日期);
submitDate=secondDateFormat.format(c.getTime());
}捕获(解析异常){
e、 printStackTrace();
}
List params=new ArrayList();
添加参数(新的BasicNameValuePair(“submitDate”,submitDate));
添加参数(新的BasicNameValuePair(“请求日期”,eDate));
}
}
您的问题实际上与您试图实现的目标无关。编译器给了您一条非常清晰的错误消息-是什么让您对该错误感到困惑?