Ich möchte das Geburtsdatum basierend auf dem Benutzergebietsschema anzeigen. In meiner Bewerbung ist eines meiner Felder das Geburtsdatum welches gerade im Format TT/MM/JJJJ ist. Wenn der Benutzer sein Gebietsschema ändert, sollte sich das Datumsformat entsprechend ändern. Irgendwelche Zeiger oder Codebeispiele würden mir wirklich helfen, das Problem zu überwinden.Datumsformatierung basierend auf Benutzergebietsschema auf Android
Antwort
Sie können die Klasse DateFormat verwenden, die ein Datum entsprechend dem Benutzergebietsschema formatiert.
Beispiel:
String dateOfBirth = "26/02/1974";
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date date = null;
try {
date = sdf.parse(dateOfBirth);
} catch (ParseException e) {
// handle exception here !
}
java.text.DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context);
String s = dateFormat.format(date);
Sie können die verschiedenen Methoden getLongDateFormat
, verwenden getMediumDateFormat
je nach dem Grad der Ausführlichkeit Sie haben möchten.
Um das Datumsformat ändert den Lokalisierungs nach arbeitete der folgende Code zu mir:
String dateOfBirth = "26/02/1974";
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date date = null;
try {
date = sdf.parse(dateOfBirth);
} catch (ParseException e) {
// handle exception here !
}
String myString = DateFormat.getDateInstance(DateFormat.SHORT).format(date);
Dann, wenn Sie das Gebietsschema ändern, wird das Datumsformat basierend auf ändern. Weitere Informationen zu den Datumsmustern: http://docs.oracle.com/javase/tutorial/i18n/format/dateFormat.html
Der von Ihnen angegebene Link ist nützlich für mich. Danke –
gleich hier! Danke ! –
Android API bieten eine einfache Möglichkeit, lokalisierte Datumsformat anzuzeigen. Der folgende Code funktioniert.
public class FileDateUtil {
public static String getModifiedDate(long modified) {
return getModifiedDate(Locale.getDefault(), modified);
}
public static String getModifiedDate(Locale locale, long modified) {
SimpleDateFormat dateFormat = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
dateFormat = new SimpleDateFormat(getDateFormat(locale));
} else {
dateFormat = new SimpleDateFormat("MMM/dd/yyyy hh:mm:ss aa");
}
return dateFormat.format(new Date(modified));
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public static String getDateFormat(Locale locale) {
return DateFormat.getBestDateTimePattern(locale, "MM/dd/yyyy hh:mm:ss aa");
}
}
Sie können den folgenden Code überprüfen.
String koreaData = FileDateUtil.getModifiedDate(Locale.KOREA, System.currentTimeMillis());
String franceData = FileDateUtil.getModifiedDate(Locale.FRENCH, System.currentTimeMillis());
String defaultData = FileDateUtil.getModifiedDate(Locale.getDefault(), System.currentTimeMillis());
String result = "Korea : " + koreaData + System.getProperty("line.separator");
result += "France : " + franceData + System.getProperty("line.separator");
result += "Default : " + defaultData + System.getProperty("line.separator");
tv.setText(result);
So einfach wie
Für Datum + Uhrzeit:
DateFormat format = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.SHORT, Locale.getDefault());
Für nur Datum:
DateFormat format = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault());
Nur zum Korrigieren des Copy-Paste-Fehlers: Rufen Sie für das Datum ohne Zeit getDateInstance auf (nicht getDateTimeInstance) – Lensflare
- 1. AngularJS Datumsformatierung auf Eingabefeld ändern
- 2. Datumsformatierung, die Zeitzone auf Datetime anwendet
- 3. Schnelle Datumsformatierung
- 4. MDX Datumsformatierung
- 5. android change view basierend auf der Internetverbindung
- 6. Android RecyclerView, Ansicht basierend auf OnClick ändern.
- 7. Benachrichtigung senden basierend auf Zeit Android
- 8. Android Karussell/Slider basierend auf ViewPager
- 9. Engine basierend auf libGDX (für Android)
- 10. Android: Suchkontakt basierend auf der Telefonnummer
- 11. Problem Filter Android App basierend auf Bildschirmauflösung
- 12. Benutzerdefinierte Anzeigen auf admob Android Studio basierend auf Keyword
- 13. iOS Datumsformatierung
- 14. Datumsformatierung in ClosedXML
- 15. Datumsformatierung nach Land habbits
- 16. Textsize basierend auf der Bildschirmgröße
- 17. Datum und Uhrzeit im Benutzergebietsschema anzeigen
- 18. Android alle Länder auf Array Spinner
- 19. Datumsformatierung in einem Raster
- 20. Datumsformatierung mit/ohne Moment.js
- 21. moment.js diff Datumsformatierung
- 22. Datumsformatierung in php
- 23. Datumsformatierung mit Joda-Zeitbibliothek
- 24. Datumsformatierung in MS SQL
- 25. Datumsformatierung in MVC Ansicht
- 26. Zeilennummer basierend auf Felddaten
- 27. Filterliste basierend auf KeyValuePairs
- 28. Limit basierend auf Count
- 29. Filterdatenbereich basierend auf Benutzereingabe
- 30. Werte basierend auf Bedingung
"Dateformat Datumsformat" sollte eigentlich „java.text.DateFormat geschrieben werden Datumsformat". Es gibt verschiedene Versionen von DateFormat aus verschiedenen Bibliotheken. – AndroidDev
Mit Blick auf den Quellcode gibt 'android.text.format.DateFormat.getDateFormat (context)' einfach 'java.text.DateFormat.getDateInstance (java.text.DateFormat.SHORT)' zurück. Tatsächlich wird das Argument 'context' nicht einmal verwendet. Ich denke, ich bevorzuge es, 'java.text.DateFormat.getDateInstance (DateFormat.SHORT)' direkt zu verwenden. –
Ich habe kein Eingabedatum in String-Typ, ich habe Datum als Eingabe – user924