2017-10-01 5 views
-1

Je construis une version IOS et Android et dans mon IOS, la date est formatée de cette façon "23 juin 2017 à 8h58".Comment puis-je formater correctement la date sur Android?

Dans Android Je reçois la date en chiffres et je les assigne comme ceci:

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

date_time = dayOfMonth + "-" + (monthOfYear + 1) + "-" + year; 
timePicker(); 
} 

et est la méthode timePicker() ici:

private void timePicker(){ 
     // Get Current Time 
     final Calendar c = Calendar.getInstance(); 
     mHour = c.get(Calendar.HOUR_OF_DAY); 
     mMinute = c.get(Calendar.MINUTE); 

     // Launch Time Picker Dialog 
     TimePickerDialog timePickerDialog = new TimePickerDialog(this, 
       new TimePickerDialog.OnTimeSetListener() { 

        @Override 
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 

         mHour = hourOfDay; 
         mMinute = minute; 

         et_show_date_time.setText(date_time+" "+hourOfDay + ":" + minute); 
        } 
       }, mHour, mMinute, false); 
     timePickerDialog.show(); 
    } 

qui conduisent à quelque chose comme ça « 27 -6-2017 16:55 "

Comment est-ce que je peux avoir un format similaire à la version IOS?

+0

Utilisez un calendrier objet tout le temps. Ensuite, vous pouvez le formater lorsque vous définissez le texte. Essayer de stocker des éléments individuels de datetime sera plus difficile à déboguer –

Répondre

0

Vous pouvez le faire en SimpleDateFormat

Date currentTime = Calendar.getInstance().getTime(); 
    String newFormat=""; 
    try 
    { 

     SimpleDateFormat form = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss"); 
     newFormat = form.format(currentTime); 
     tvAppliedDate.setText(newFormat); 


    } 
    catch (Exception e) 
    { 

     e.printStackTrace(); 
     Toast.makeText(this, "parse error", Toast.LENGTH_SHORT).show(); 
    } 
+0

Je ne comprends pas certains d'entre eux, ce qui est "tvAppliedDate", et quelle est l'heure actuelle? – user3420180

+0

heure actuelle est la variable d'instance de date qui donne l'heure actuelle, tv AppliedDate est le textview que j'utilisais, vous pouvez obtenir la date actuelle du sélecteur que vous utilisez et pour l'heure utilisez Calendar.getInstance(). GetTime() –

+0

et le formater en tant que SimpleDateFormat form = new SimpleDateFormat (HH: mm: ss "); newFormat = form.format (currentTime); // newFormat est une chaîne de caractères contenant le temps –