2015-07-22 40 views
0

我有一個EditText上單擊事件,我展示的DatePicker對話框,並在「MMMM DD,YYYY」格式顯示已選定的日期即1932年6月26日。 但我需要將不同格式的日期傳遞給服務器;我需要通過的格式是「1932-06-26」。下面是我的代碼:如何在兩個不同的日期格式的字符串存儲到兩個變量

 { 
    dateFormatter = new SimpleDateFormat("MMMM dd, yyyy", Locale.US);   
       birthDate = (EditText) findViewById(R.id.birthday); 
       birthDate.setInputType(InputType.TYPE_NULL); 
       setDateTimeField(); 
    } 

private void setDateTimeField() { 
     birthDate.setOnClickListener(this); 
     Calendar newCalendar = Calendar.getInstance(); 
     birthDatePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { 

      public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 
       Calendar newDate = Calendar.getInstance(); 
       newDate.set(year, monthOfYear, dayOfMonth); 
       birthDate.setText(dateFormatter.format(newDate.getTime())); 
      } 

     },newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH)); 
    } 

和存儲不同格式的日期,我按照以下方法:

birthDate = (EditText) findViewById(R.id.birthday); 
     SimpleDateFormat formatDate = new SimpleDateFormat("dd MMM yyyy",Locale.US); 
     String output = formatDate.format(birthDate.getText().toString()); 
     Log.d(TAG,"FORMATED DATE IS ::::: " + output); 

但我得到一個Ĵava.lang.IllegalArgumentException:叛逆類:類java.lang.String錯誤。

是否有可能以一種格式顯示日期並將日期存儲爲不同的格式?

回答

1

試試這個

String tmpDate = "June 26, 1932" ; 
    String parsedDate = new SimpleDateFormat("yyyy-MM-dd").format(new SimpleDateFormat("MMMM dd, yyyy").parse(tmpDate)); 
    Log.d(TAG,"FORMATED DATE IS ::::: " + parsedDate); 
2

首先,你必須解析字符串的日期,然後你可以將其格式化:

此代碼應工作:

birthDate = (EditText) findViewById(R.id.birthday); 
SimpleDateFormat formatDate1 = new SimpleDateFormat("MMMM dd,yyyy",Locale.US); 
SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd",Locale.US); 
String output = formatDate.format(formatDate1.parse(birthDate.getText().toString())); 
1

下面是最終的我嘗試過並且工作得很好的答案。我創建了一個函數並返回我想要的最終輸出。

private String formatDate() { 
     birthDate = (EditText) findViewById(R.id.birthday); 
     String outputFormat = null; 
     SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd",Locale.US); 
     String inputFormatStr = "MMMM dd, yyyy"; 
     DateFormat inputDateFormat = new SimpleDateFormat(inputFormatStr,Locale.US); 
     Date inputDate = null; 
     try{ 
      inputDate = inputDateFormat.parse(birthDate.getText().toString()); 
      if(birthDate!=null){ 
       outputFormat = formatDate.format(inputDate); 
      } 
     } catch (ParseException e) { 
      Log.e(TAG, "exception occurred with details: "+e.toString()); 
     } 
      return outputFormat; 
    } 
相關問題