2012-02-15 2 views
3

Работающие по случаю годовщины Контакт рождения и:Дата: Android Контакты День рождения Юбилей

я получаю информацию и день рождения, как это 12.2.2012 или 12/2/2012 или 12.02.2012 или 2/12/12

Вопрос:

  1. ли дата Формат одинаков для всех телефонов Samsung. ЕСЛИ да, какой формат даты.

    (Guess не будет работать на всех Android телефонов, даты рождения, хранятся во многих разных форматах)

  2. Как определить формат даты, как если дата 12.2.2012 или 12 февраля 2012 или любой другой шаблон строки даты. Это формат «yyyy-MM-dd» или «MMM dd, yyyy» или любой другой? например: если дата "12 февраля 2012", то формат даты "МММ гггг"

ответ

0

дата хранится как "YYYY-MM-DD".

Используйте класс даты, чтобы преобразовать его в любой формат, в котором вы нуждаетесь.

Если вы хотите обновить, поставьте его в том же формате, который вы прочитали.

2

Используйте DateFormat.getDateInstance(int style, Locale locale) вместо создания собственных шаблонов с SimpleDateFormat.

Другим способом, что и хочет, чтобы получить дату в строке и после прохода в поле ниже код

String dateStr = "04/05/2010"; 

SimpleDateFormat curFormater = new SimpleDateFormat("dd/MM/yyyy"); 
Date dateObj = curFormater.parse(dateStr); 
SimpleDateFormat postFormater = new SimpleDateFormat("MMMM dd, yyyy"); 

String newDateStr = postFormater.format(dateObj); 
3

К сожалению, кажется, различные приложения/производители используют разные форматы. Мое решение для этого - попробовать разбор различных форматов, пока я не найду нужного или не сдадусь.

Вот некоторые примеры кода:

public static final SimpleDateFormat[] birthdayFormats = { 
    new SimpleDateFormat("yyyy-MM-dd"), 
    new SimpleDateFormat("yyyyMMdd"), 
    new SimpleDateFormat("yyyy.MM.dd"), 
    new SimpleDateFormat("yy-MM-dd"),, 
    new SimpleDateFormat("yyMMdd"), 
    new SimpleDateFormat("yy.MM.dd") 
    new SimpleDateFormat("yy/MM/dd"), 
    new SimpleDateFormat("MM-dd"), 
    new SimpleDateFormat("MMdd"), 
    new SimpleDateFormat("MM/dd"), 
    new SimpleDateFormat("MM.dd"), 
}; 
..... 
    Date birthday = null; 
     for (SimpleDateFormat f : birthdayFormats) { 
     try { 
       birthday = f.parse(birthdaystr); 
       if (birthday!=null) { 
         contact.setBirthday(birthday); 
         break; 
       } 
     } catch (Exception e) { 
       continue; 
     } 
      }