2015-03-19 16 views
5

Ich möchte einen Hinweis anzeigen, wie ein Datum eingegeben werden soll. Für Deutschland ist es wieWie wird das Datumsformat entsprechend dem Gebietsschema angezeigt?

"Geben Sie Datum in diesem Format: DD.MM.YYY" aussehen könnte

Für den US-

"Geben Sie Datum in diesem Format: mm/tt /"

ich verstehe, dass mit

DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context); 

ich ein Datum in ein Format umwandeln kann die Benutzer-Gebietsschema entspricht. Aber wie bekomme ich die Zeichenfolge Tag/Monat/Jahr für den Hinweis?

Und natürlich würde ich das ähnliche Ding mit einem Hinweis auf Zeit auch wollen.

Vielen Dank für Anregungen.

Antwort

3
String hintText = new SimpleDateFormat().toPattern(); // dd/MM/y HH:mm 

Ich weiß, dass Sie nur für das Datum gefragt wurden, aber das war so nah wie ich bekommen kann. Die interne Regel ist localeData.getDateFormat(SHORT) + " " + localeData.getTimeFormat(SHORT) so denke ich, solange es kein Gebietsschema gibt, das ein Datumsformat mit Leerzeichen hat, können Sie die Zeichenfolge auf ein Leerzeichen

+0

Ja funktioniert. Ich muss sehen, was mit mehr als einem Leerzeichen in der Ergebniszeichenfolge zu tun ist. Vielen Dank. – Addi

+0

Ich glaube Samgak Lösung ist besser als meine eigenen. Aber wie Sie in den Kommentaren gesagt haben, ist es API 18+ – WORMSS

4

Sie die getBestDateTimePattern Methode des Dateformates verwenden:

String datePattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), "ddMMyyyy"); 
String timePattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), "HHmmss"); 

Hinweis: Annahme 24-Stunden-Format für die Zeit. Möglicherweise möchten Sie vor der Präsentation für den Benutzer in alle Groß- oder Kleinbuchstaben konvertieren.

+0

nur teilen Arbeitet wie ein Charme, leider nur von API-Ebene 18 (http://developer.android.com/reference/android/text/format/DateFormat.html#getBestDateTimePattern(java.util.Locale, java.lang.String)) weiter. Scheint muss ich mit der Lösung gehen @WORMSS vorgeschlagen – Addi

2

Versuchen Sie folgendes:

Calendar cal = Calendar.getInstance(); 
          int year = cal.get(Calendar.YEAR); 
          int month = cal.get(Calendar.MONTH); 
          int day = cal.get(Calendar.DAY_OF_MONTH); 
          int hour = cal.get(Calendar.HOUR_OF_DAY); 
          int minute = cal.get(Calendar.MINUTE); 
          int second = cal.get(Calendar.SECOND); 

Calendar now = new GregorianCalendar(year, month, day, hour, minute, second); 

long time = now.getTimeInMillis(); 
Date date = new Date(time); 

String timeSet = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT).format(date); 
Verwandte Themen