Formattazione data e ora a seconda della locale

Sono nuovo allo sviluppo di Java e Android, quindi potrebbe essere una domanda stupida, ma ho cercato giorni e non riesco a trovare una soluzione:

Cerco di produrre un java.util.Date base alle java.util.Date locali dell'utente.

  • Aggiungere / leggere il peso e l'altezza in GoogleFit? android
  • Reinstallare l'applicazione apk in modo programmato senza scaricare
  • Come possiamo usare onNewIntent () in qualsiasi attività?
  • le modifiche di colore di background dell'elenco di listview sullo scorrimento,
  • Tenere il text in TextView con il drawableLeft centrato
  • Jelly Bean DatePickerDialog - c'è un modo per annullare?
  • La ricerca su StackOverflow mi port a:

     java.util.Date date = new Date(); String dateString = DateFormat.getDateFormat(getApplicationContext()).format(date); 

    Queste uscite:

     20/02/2011 

    Sul mio telefono francese localizzato. Quasi bene.

    Come posso anche uscirne le ore, i minuti e le parti secondarie della Date , utilizzando le impostazioni locali dell'utente? Ho guardato la documentazione android ma non ho trovato niente.

    Grazie molto.

  • La piattaforma Cordova aggiunge errore android
  • Disegna il gradiente trasparente con la trasparenza alfa da 0 a 1
  • Come fare una barra dei pulsanti in basso dal momento in cui fai clic su una casella di controllo in ListView?
  • Scraping html generato dynamicmente all'interno di app Android
  • Utilizzando l'archetipo android con l'eclipse
  • Inserimento di massa su dispositivo Android
  • 6 Solutions collect form web for “Formattazione data e ora a seconda della locale”

    Utilizza android.text.format.DateFormat.getTimeFormat()

    ref: http://developer.android.com/reference/android/text/format/DateFormat.html

    tl; dr

     ZonedDateTime.now( ZoneId.of( "Asia/Kolkata" ) ) .format( DateTimeFormatter.ofLocalizedDateTime ( FormatStyle.FULL ).withLocale ( Locale.FRENCH ) ) 

    java.time

    Il codice nella Domanda usa le vecchie classi di date-time problematiche, ora legacy, soppiantate dalle classi java.time incorporate in Java 8 e versioni successive.

    Il locale e il fuso orario non hanno nulla a che fare con l'altro. Locale determina la lingua umana e le norme culturali utilizzate durante la generazione di una string per rappresentare un valore data-ora. Il fuso orario determina l' orologio a panetworking di una determinata regione utilizzata per rappresentare un momento sulla timeline.

    La class Instant rappresenta un momento sulla timeline in UTC con una risoluzione di nanosecondi (fino a nove (9) cifre di una frazione decimale).

     Instant instant = Instant.now(); 

    2016-10-12T07: 21: 00.264Z

    Applicare un fuso orario per get un ZonedDateTime . Scelgo arbitrariamente di mostrare questo momento usando la zona del tempo indiana. Stesso momento, stesso punto sulla timeline.

     ZoneId z = ZoneId.of( "Asia/Kolkata" ); ZonedDateTime zdt = instant.atZone( z ); 

    2016-10-12T12: 51: 00.264 + 05: 30 [Asia / Kolkata]

    Genera una string utilizzando il locale di Québec Canada. Lasciate che java.time localizzi automaticamente la string.

     Locale l = Locale.CANADA_FRENCH; DateTimeFormatter f = DateTimeFormatter.ofLocalizedDateTime ( FormatStyle.FULL ).withLocale ( l ); String output = zdt.format ( f ); // Indian time zone with Québécois presentation/translation. 

    mercredi 12 octobre 2016 12 h 51 IST


    Informazioni su java.time

    Il framework java.time è incorporato in Java 8 e versioni successive. Queste classi soppiantano le vecchie classi di data-time legacy vecchie come java.util.Date , .Calendar , & java.text.SimpleDateFormat .

    Il progetto Joda-Time , ora in modalità di manutenzione , consiglia la migrazione a java.time.

    Per ulteriori informazioni, consulta l' Oracle Tutorial . E cerca lo Stack Overflow per molti esempi e spiegazioni. La specifica è JSR 310 .

    Dove get le classi java.time?

    • Java SE 8 e SE 9 e successive
      • Built-in.
      • Parte dell'API Java standard con un'implementazione in bundle.
      • Java 9 aggiunge alcune caratteristiche minime e correzioni.
    • Java SE 6 e SE 7
      • Gran parte della funzionalità java.time è back-ported a Java 6 & 7 in ThreeTen-Backport .
    • android
      • Il progetto ThreeTenABP adatta TreTen-Backport (sopra citato) per Android specificamente.
      • Vedere Come utilizzare ….

    Il progetto ThreeTen-Extra estende java.time con classi aggiuntive. Questo progetto è un punto di prova per possibili future aggiunte a java.time. Qui puoi trovare alcune classi utili come Interval , YearWeek , YearQuarter e altro ancora .

    java.text.DateFormat ha tutte le funzioni che potreste avere bisogno di:

    DateFormat.getDateInstance()

    DateFormat.getTimeInstance()

    Ma quello che ti serve è:

    DateFormat.getDateTimeInstance() È inoltre ansible specificare la lunghezza della parte data / ora e della locale. Il risultato finale sarebbe:

    DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.SHORT, Locale.FRENCH).format(Date);

    Origine: http://docs.oracle.com/javase/7/docs/api/java/text/DateFormat.html

    DateFormat.getTimeInstance() ottiene il timeformatter con lo stile di formattazione predefinito per la locale predefinita. Puoi anche passare uno stile e un locale.

     public static String formatDate(Date date, boolean withTime) { String result = ""; DateFormat dateFormat; if (date != null) { try { String format = Settings.System.getString(context.getContentResolver(), Settings.System.DATE_FORMAT); if (TextUtils.isEmpty(format)) { dateFormat = android.text.format.DateFormat.getDateFormat(context); } else { dateFormat = new SimpleDateFormat(format); } result = dateFormat.format(date); if (withTime) { dateFormat = android.text.format.DateFormat.getTimeFormat(context); result += " " + dateFormat.format(date); } } catch (Exception e) { } } return result; } 

    Se si desidera che le ore secondi e millesimi secondi della locale corrente utilizzino Calendar.getInstance (). GetTime () vi darà il tempo della locale corrente

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.