2017-03-06 5 views
0

Ich bin ein Neuling Android Entwickler.So ändern Sie das Datumsformat von der Datumsauswahl (Kalenderansicht)

Jetzt versuche ich das Datumsformat von m/d/yyyy in mmddyyyy zu ändern.

Dies ist Link verweisen: http://www.thaicreate.com/mobile/android-calendarview.html

Hoffnung zu mir jemand helfen.

Sorry für meine schlechte Englischsprache.

myCalendarView.java

package com.myapp; 
 

 
import android.os.Bundle; 
 
import android.app.Activity; 
 
import android.widget.CalendarView; 
 
import android.content.Intent; 
 

 
public class myCalendarView extends Activity { 
 
\t 
 
    private int mYear; 
 
    private int mMonth; 
 
    private int mDay; 
 

 

 
    @Override 
 
    public void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     CalendarView calendar = new CalendarView(this); 
 
     calendar.setOnDateChangeListener(mDateSetListener); 
 
     setContentView(calendar); 
 

 
    } 
 

 
    // the callback received when the user "sets" the date in the dialog 
 
    private CalendarView.OnDateChangeListener mDateSetListener = 
 
     new CalendarView.OnDateChangeListener() { 
 

 
     public void onSelectedDayChange(CalendarView view, int year, 
 
       int monthOfYear, int dayOfMonth) { 
 
      mYear = year; 
 
      mMonth = monthOfYear; 
 
      mDay = dayOfMonth; 
 
      String selectedDate = new StringBuilder().append(mMonth + 1).append("-").append(mDay).append("-") 
 
      .append(mYear).append(" ").toString(); 
 

 
      Bundle b = new Bundle(); 
 
      b.putString("dateSelected", selectedDate); 
 

 
      //Add the set of extended data to the intent and start it 
 
      Intent intent = new Intent(); 
 
      intent.putExtras(b); 
 
      setResult(RESULT_OK,intent);  
 
      finish(); 
 
     } 
 
    }; 
 

 
}

MainActivity.java

package com.myapp; 
 

 
import android.os.Bundle; 
 
import android.app.Activity; 
 
import android.view.Menu; 
 
import android.widget.Button; 
 
import android.widget.EditText; 
 
import android.view.View; 
 
import java.util.Calendar; 
 
import android.content.Intent; 
 

 
public class MainActivity extends Activity { 
 
\t 
 
    private EditText editT1; 
 
    private Button btn1; 
 

 
    private int mYear; 
 
    private int mMonth; 
 
    private int mDay; 
 

 
    static final int CALENDAR_VIEW_ID = 1; 
 
\t 
 
    @Override 
 
    public void onCreate(Bundle savedInstanceState) { 
 
     super.onCreate(savedInstanceState); 
 
     setContentView(R.layout.activity_main); 
 
     
 
     
 
     // editText1 
 
     editT1 = (EditText) findViewById(R.id.editText1); 
 
     
 
     // button1 
 
     btn1 = (Button) findViewById(R.id.button1); 
 

 
     // add a click listener to the button 
 
     btn1.setOnClickListener(new View.OnClickListener() { 
 
      public void onClick(View v) { 
 
       Intent intent = new Intent(MainActivity.this, myCalendarView.class); 
 
       startActivityForResult(intent,CALENDAR_VIEW_ID); 
 
      } 
 
     }); 
 
     
 
     // get the current date 
 
     final Calendar c = Calendar.getInstance(); 
 
     mYear = c.get(Calendar.YEAR); 
 
     mMonth = c.get(Calendar.MONTH); 
 
     mDay = c.get(Calendar.DAY_OF_MONTH); 
 

 
     // display the current date 
 
     updateCurrentDate(); 
 
\t \t 
 
    } 
 

 
    // updates the date we display in the TextView 
 
    private void updateCurrentDate() { 
 
    \t editT1.setText(
 
      new StringBuilder() 
 
        // Month is 0 based so add 1 
 
        .append(mMonth + 1).append("-") 
 
        .append(mDay).append("-") 
 
        .append(mYear).append(" ")); 
 
    } 
 
    
 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
 
    { 
 
     switch(requestCode) { 
 
     case CALENDAR_VIEW_ID: 
 
      if (resultCode == RESULT_OK) { 
 

 
       Bundle bundle = data.getExtras(); 
 
       editT1.setText(bundle.getString("dateSelected")); 
 
       break; 
 
      } 
 
     } 
 

 
    } 
 
    
 
    @Override 
 
    public boolean onCreateOptionsMenu(Menu menu) { 
 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
 
     return true; 
 
    } 
 
    
 
}

+0

Bitte geben Sie den Geburtstag Datumsformat ändern möchten. Ich habe hier kein 'm/d/yyyy' gesehen. –

+0

@Boonya Kitpitak Nachdem ich das Datum im Kalender ausgewählt habe. Es wird auf das Ergebnis wie dieses 3/1/2017 zeigen. Aber ich möchte wie 03/01/2017 zeigen. –

Antwort

0

Benutzer unter Methode für Datum Parsen ... nach Ihren Datumsformat ..

public static String parsePickerDate(int Year, int Month, int day) { 

    String sYear = String.valueOf(Year); 
    String sMonth = String.valueOf((Month + 1)); 
    String sDay = String.valueOf(day); 

    if (sDay.length() == 1) 
     sDay = "0" + sDay; 

    if (sMonth.length() == 1) 
     sMonth = "0" + sMonth; 

    if (sDay.length() == 1) 
     sDay = "0" + sDay; 

    return sYear + "-" + sMonth + "-" + sDay; 
} 
+1

Es ist Arbeit für mich. Danke Bruder. –

0

Sie können wie konvertieren als

DateFormat formatter = new SimpleDateFormat("MM/dd/yy"); 
Date date = (Date)formatter.parse("5/1/12"); 

formatter = new SimpleDateFormat("MM/dd/yyyy"); 
date = (Date)formatter.format(date); 

, wenn Sie es für Datum Picker ändern möchten, dann können Sie diese verwenden

@Override 
public void onDateSet(DatePicker view, int year, int monthOfYear, 
    int dayOfMonth) { 

int month = monthOfYear + 1; 
String formattedMonth = "" + month; 
String formattedDayOfMonth = "" + dayOfMonth; 

if(month < 10){ 

    formattedMonth = "0" + month; 
} 
if(dayOfMonth < 10){ 

    formattedDayOfMonth = "0" + dayOfMonth; 
} 
searchText.setText(formattedDayOfMonth + "/" + formattedMonth + "/" + year); 
} 
+0

Ich versuche diese Lösung. Aber es funktioniert nicht für mich. Da, Ergebnis Datumsformat wie dieses 1/1/2017. Aber ich möchte zum 01.01.2017 konvertieren –

0
try { 
    SimpleDateFormat inputDate = new SimpleDateFormat("d/M/yyyy", Locale.US); 
    SimpleDateFormat outputDate = new SimpleDateFormat("MMddyyyy", Locale.US); 

    String date = outputDate.format(inputDate.parse("5/2/1993")); 


} catch (ParseException e) { 
    e.printStackTrace(); 
} 
Verwandte Themen