2011-09-16 1 views
1

У меня есть функция, как показано ниже, чтобы сгенерировать уникальный идентификатор для моего приложенияAndroid: Уникальный генератор ID и Locale

public static String now(String dateFormat) { 
    Calendar cal = Calendar.getInstance(); 
    SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); 
    return sdf.format(cal.getTime()); 
} 

я вызываю функцию, используя следующий путь

incident_id = IncidentIdGenerator.now("ddMMyyyyHHmmss"); 

проблема встречается, когда я изменить Locale. Например, если я изменяю языковой стандарт на арабский, в некоторых арабских буквах генерируется уникальный идентификатор. Арабские буквы не поддерживаются в веб-службе, которую я собираюсь позвонить.

Я должен придерживаться Locale.US при создании уникального идентификатора. Как я могу добиться этого? Я пробовал, как показано ниже, но это тоже не сработало.

Calendar cal = Calendar.getInstance(Locale.US); 

Спасибо за yoru заблаговременно.

ответ

5

Вы также должны указать Locale.US с SimpleDateFormat.

SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.US); 
+1

Спасибо большое, что это сработало для меня :) –

12

Если вы не Хеллбент об использовании времени и локаль для создания уникального идентификатора в приложении Вот альтернативный

String uniqueId = UUID.randomUUID().toString(); 

Сформировать его и хранить это sharedPreference и использовать его всякий раз, когда вы хотите.

+0

+1 GUIDs/UUIDs являются удивительными. –

Смежные вопросы