2011-09-16 25 views
1

我有如下函數生成唯一ID爲我的應用程序安卓:唯一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"); 

問題occures語言環境。例如,如果我將語言環境更改爲阿拉伯語,則會在某些阿拉伯字母中生成唯一標識。阿拉伯字母不支持我要打電話的網絡服務。

創建唯一ID時,我必須堅持Locale.US。我該如何實現這個?我嘗試如下,但它沒有工作。

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

感謝您提前yoru時間。

回答

5

您還必須指定Locale.US與您的SimpleDateFormat

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

非常感謝它爲我工作:) –

12

除非你使用的時間和區域爲您的應用程序生成唯一的ID背水戰這是一種替代

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

生成並存儲,這是一個sharedPreference,只要你想使用它。

+0

+1 GUIDs/UUIDs是真棒。 –