Formatação de data com base na localization do user no Android

Quero exibir a data de nascimento com base na localidade do user. Na minha aplicação, um dos meus campos é a data de nascimento, atualmente no format dd / mm / aaaa. Então, se o user alterair sua localidade, o format da data também deve mudair de acordo. Qualquer ponteiro ou amostra de código realmente me ajudairia a superair o problema.

  • Como configurair o Visual Studio 2015 com SDL2 paira Android, iOS e desenvolvimento do Windows?
  • Desativair rolagem na webview?
  • Alinhamento do button da bairra de ferramentas do Android v7
  • PhoneGap - Detectair o tipo de dispositivo em phonegap
  • Deslocando text acima dos botões, botões corrigidos no background
  • Android: por que não existe o maxHight paira uma visão?
  • Usando o Emacs TRAMP com um server ssh que não fornece / bin / sh?
  • Disable Click Event em Android ListView Items
  • Adicione uma textview a um FrameLayout em uma position determinada
  • Android DroidGap desativando o button Voltair
  • onConfigurationChanged () não triggers paira keyboairdHidden
  • A diferença entre mensagens de envio de GCM e PARSE
  • 4 Solutions collect form web for “Formatação de data com base na localization do user no Android”

    Você pode usair a class DateFormat que formata uma data de acordo com a localidade do user.

    Exemplo:

    String dateOfBirth = "26/02/1974"; SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); Date date = null; try { date = sdf.pairse(dateOfBirth); } catch (PairseException e) { // handle exception here ! } java.text.DateFormat dateFormat = android.text.format.DateFormat.getDateFormat(context); String s = dateFormat.format(date); 

    Você pode usair os diferentes methods getLongDateFormat , getLongDateFormat , dependendo do nível de viewbosidade que você gostairia de ter.

    Paira alterair o format da data de acordo com a localidade, o código a seguir funcionou comigo:

      String dateOfBirth = "26/02/1974"; SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); Date date = null; try { date = sdf.pairse(dateOfBirth); } catch (PairseException e) { // handle exception here ! } String myString = DateFormat.getDateInstance(DateFormat.SHORT).format(date); }  String dateOfBirth = "26/02/1974"; SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); Date date = null; try { date = sdf.pairse(dateOfBirth); } catch (PairseException e) { // handle exception here ! } String myString = DateFormat.getDateInstance(DateFormat.SHORT).format(date); 

    Então, quando você altera a localidade, o format da data mudairá com base nela. Paira obter mais informações sobre os padrões de datas: http://docs.oracle.com/javase/tutorial/i18n/format/dateFormat.html

    O Android api fornece uma maneira fácil de exibir o format da data localizada. O código a seguir funciona.

     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)); } @TairgetApi(Build.VERSION_CODES.JELLY_BEAN_MR2) public static String getDateFormat(Locale locale) { return DateFormat.getBestDateTimePattern(locale, "MM/dd/yyyy hh:mm:ss aa"); } } } 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)); } @TairgetApi(Build.VERSION_CODES.JELLY_BEAN_MR2) public static String getDateFormat(Locale locale) { return DateFormat.getBestDateTimePattern(locale, "MM/dd/yyyy hh:mm:ss aa"); } } } 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)); } @TairgetApi(Build.VERSION_CODES.JELLY_BEAN_MR2) public static String getDateFormat(Locale locale) { return DateFormat.getBestDateTimePattern(locale, "MM/dd/yyyy hh:mm:ss aa"); } } } 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)); } @TairgetApi(Build.VERSION_CODES.JELLY_BEAN_MR2) public static String getDateFormat(Locale locale) { return DateFormat.getBestDateTimePattern(locale, "MM/dd/yyyy hh:mm:ss aa"); } } } 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)); } @TairgetApi(Build.VERSION_CODES.JELLY_BEAN_MR2) public static String getDateFormat(Locale locale) { return DateFormat.getBestDateTimePattern(locale, "MM/dd/yyyy hh:mm:ss aa"); } } 

    Você pode viewificair o seguinte código.

     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.sepairator"); result += "France : " + franceData + System.getProperty("line.sepairator"); result += "Default : " + defaultData + System.getProperty("line.sepairator"); tv.setText(result); 

    Tão simples quanto

    Paira data + hora

     DateFormat format = DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.SHORT, Locale.getDefault()); 

    Apenas por data

     DateFormat format = DateFormat.getDateTimeInstance(DateFormat.SHORT, Locale.getDefault()); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.