Android: Wie bekomme ich den aktuellen Tag der Woche (Montag, etc …) in der Sprache des Benutzers?

Ich möchte wissen, was der aktuelle Tag der Woche ist (Montag, Dienstag …) in der lokalen Sprache des Benutzers. Zum Beispiel "Lundi" "Mardi" etc … wenn der Benutzer Französisch ist.

Ich habe diesen Beitrag gelesen, aber es gibt nur einen int, nicht einen String mit dem Tag in der Sprache des Benutzers: Was ist der einfachste Weg, um den aktuellen Tag der Woche in Android zu bekommen?

  • Kamera auf Android Eclipse Emulator:
  • Jar Mismatch! Beheben Sie Ihre Abhängigkeiten
  • Konvertieren Sie Minuten zu Millisekunden Java / Android
  • Ich bekomme listView.getChildCount (), ist nach der Einstellung des Arrayadapters 0?
  • Hat eine Android-Bibliothek ein Manifest, App_name, Icon?
  • Verwenden Sie 'Ameisen sauberen Test' mit dem neuesten Android Sdk. '$ {Renderscript.opt.level}' ist kein zulässiger Wert für com.android.ant.RenderScriptTask $ OptLevel
  • Im Allgemeinen, wie bekommst du alle Tage der Woche und alle Monate des Jahres in der Sprache des Benutzers geschrieben?

    Ich denke, dass dies möglich ist, wie zum Beispiel die Google-Agenda gibt die Tage und Monate in der lokalen Sprache des Benutzers geschrieben.

    Vielen Dank !!

  • Android Tile Bitmap
  • Registrieren Sie die Geräte-ID direkt mit Amazon SNS
  • Android erhält Wert von ausgewähltem Radiobutton
  • Set android Form Farbe programmgesteuert
  • Nicht in der Lage, Daten aus dem Cache zu laden okHttp & retrofit
  • Fragmente noch hinzugefügt Backstack ohne Aufruf addToBackStack, warum?
  • 8 Solutions collect form web for “Android: Wie bekomme ich den aktuellen Tag der Woche (Montag, etc …) in der Sprache des Benutzers?”

    Verwenden Sie SimpleDateFormat, um Datum und Uhrzeit in eine menschenlesbare Zeichenfolge zu formatieren, in Bezug auf das Benutzergebietsschema.

    Kleines Beispiel für den aktuellen Tag der Woche (zB "Montag") :

    SimpleDateFormat sdf = new SimpleDateFormat("EEEE"); Date d = new Date(); String dayOfTheWeek = sdf.format(d); 

    Um die Dinge kürzer zu machen, kannst du das benutzen:

     android.text.format.DateFormat.format("EEEE", date); 

    Die den Tag der Woche als String zurückgeben wird.

    Versuche dies:

     int dayOfWeek = date.get(Calendar.DAY_OF_WEEK); String weekday = new DateFormatSymbols().getShortWeekdays()[dayOfWeek]; 

    Sie ist, was ich pflegte, um die Tagesnamen zu bekommen ( 0-6 bedeutet monday - sunday ):

     public static String getFullDayName(int day) { Calendar c = Calendar.getInstance(); // date doesn't matter - it has to be a Monday // I new that first August 2011 is one ;-) c.set(2011, 7, 1, 0, 0, 0); c.add(Calendar.DAY_OF_MONTH, day); return String.format("%tA", c); } public static String getShortDayName(int day) { Calendar c = Calendar.getInstance(); c.set(2011, 7, 1, 0, 0, 0); c.add(Calendar.DAY_OF_MONTH, day); return String.format("%ta", c); } 

    Ich weiß schon beantwortet, aber wer sucht 'Fri' so

    Für Fr –

     SimpleDateFormat sdf = new SimpleDateFormat("EEE"); Date d = new Date(); String dayOfTheWeek = sdf.format(d); 

    Und wer will volle Datum String können sie 4E für Freitag verwenden

    Für Freitag-

     SimpleDateFormat sdf = new SimpleDateFormat("EEEE"); Date d = new Date(); String dayOfTheWeek = sdf.format(d); 

    Genießen…

    Versuche dies…

     //global declaration private TextView timeUpdate; Calendar calendar; ....... timeUpdate = (TextView) findViewById(R.id.timeUpdate); //initialize in onCreate() ....... //in onStart() calendar = Calendar.getInstance(); //date format is: "Date-Month-Year Hour:Minutes am/pm" SimpleDateFormat sdf = new SimpleDateFormat("dd-MMM-yyyy HH:mm a"); //Date and time String currentDate = sdf.format(calendar.getTime()); //Day of Name in full form like,"Saturday", or if you need the first three characters you have to put "EEE" in the date format and your result will be "Sat". SimpleDateFormat sdf_ = new SimpleDateFormat("EEEE"); Date date = new Date(); String dayName = sdf_.format(date); timeUpdate.setText("" + dayName + " " + currentDate + ""); 

    Das Ergebnis ist… Bildbeschreibung hier eingeben

    Glückliche Kodierung …..

    Tl; dr

     String output = LocalDate.now( ZoneId.of( "America/Montreal" ) ) .getDayOfWeek() .getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ; 

    Java.time

    Die java.time-Klassen, die in Java 8 und höher integriert wurden und auf Java 6 & 7 und auf Android DayOfWeek beinhalten das praktische DayOfWeek enum.

    Die Tage sind nach der Standard ISO 8601 Definition, 1-7 für Montag-Sonntag nummeriert.

     DayOfWeek dow = DayOfWeek.of( 1 ); 

    Dieses Enum enthält die Methode getDisplayName , um einen String des lokalisierten übersetzten Namens des Tages zu erzeugen.

    Das Locale Objekt legt eine menschliche Sprache fest, die in der Übersetzung verwendet werden soll, und legt kulturelle Normen fest, um Themen wie Kapitalisierung und Interpunktion zu entscheiden.

     String output = DayOfWeek.MONDAY.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ; 

    Um das heutige Datum zu erhalten, benutze die LocalDate Klasse. Beachten Sie, dass eine Zeitzone entscheidend ist, da für jedes gegebene Moment das Datum um den Globus variiert.

     ZoneId z = ZoneId.of( "America/Montreal" ); LocalDate today = LocalDate.now( z ); DayOfWeek dow = today.getDayOfWeek(); String output = dow.getDisplayName( TextStyle.FULL , Locale.CANADA_FRENCH ) ; 

    Denken Sie daran, dass das Gebietsschema nichts mit der Zeitzone zu tun hat. Zwei getrennte orthogonale Probleme. Vielleicht möchten Sie eine französische Präsentation einer in Indien ( Asia/Kolkata ) zonierten Datumszeit.

    Joda-Zeit

    UPDATE: Das Joda-Time- Projekt, das jetzt im Wartungsmodus ist , empfiehlt die Migration zu den Java.time- Klassen.

    Die Joda-Time- Bibliothek bietet Locale angetriebene Lokalisierung von Datum-Zeit-Werten.

     DateTimeZone zone = DateTimeZone.forID( "America/Montreal" ); DateTime now = DateTime.now( zone ); Locale locale = Locale.CANADA_FRENCH; DateTimeFormatter formatterUnJourQuébécois = DateTimeFormat.forPattern( "EEEE" ).withLocale( locale ); String output = formatterUnJourQuébécois.print( now ); System.out.println("output: " + output ); 

    Ausgabe: samedi


    Über java.time

    Das java.time Framework ist in Java 8 und höher integriert. Diese Klassen ersetzen die lästigen alten Alt-Zeit-Klassen wie java.util.Date , Calendar und SimpleDateFormat .

    Das Joda-Time- Projekt, das jetzt im Wartungsmodus ist , empfiehlt die Migration zu den Java.time- Klassen.

    Um mehr zu erfahren, siehe das Oracle Tutorial . Und suche Stack Overflow für viele Beispiele und Erklärungen. Spezifikation ist JSR 310 .

    Wo bekomme ich die java.time Klassen?

    • Java SE 8 und SE 9 und später
      • Eingebaut
      • Teil der Standard-Java-API mit einer gebündelten Implementierung.
      • Java 9 fügt einige kleinere Features und Korrekturen hinzu.
    • Java SE 6 und SE 7
      • Ein Großteil der java.time-Funktionalität ist in den SPT 6 & 7 in ThreeTen-Backport zurückgelegt .
    • Android
      • Das ThreeTenABP- Projekt passt ThreeTen-Backport (oben erwähnt) für Android speziell an.
      • Siehe Wie benutzt man ThreeTenABP ….

    Sorry für späte Antwort. Aber das würde richtig funktionieren.

     daytext=(textview)findviewById(R.id.day); Calender c=Calender.getInstance(); SimpleDateFormat sd=new SimpleDateFormat("EEEE"); String dayofweek=sd.format(c.getTime()); daytext.setText(dayofweek); 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.