2011-09-16 12 views
1

私は自分のアプリケーションアンドロイド:ユニークなIDジェネレータとロケール

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

のためのユニークなIDを生成するために、以下のような機能を持っている私は、私が変更されたときに

incident_id = IncidentIdGenerator.now("ddMMyyyyHHmmss"); 

問題がoccures以下の方法を使用して関数を呼び出しますロケール。たとえば、ロケールをアラブに変更すると、いくつかのアラブ文字に固有のIDが生成されます。アラブ文字は私が呼び出すウェブサービスではサポートされていません。

一意のIDを作成するときは、Locale.USに固執する必要があります。どのように私はこれを達成することができますか?私は以下のようにしてみましたが、うまくいきませんでした。

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

あらかじめご了承ください。

答えて

5

SimpleDateFormatにはLocale.USも指定する必要があります。アプリケーションでユニークなIDを生成するための時間とロケールを使用して上の暴勇でない限り

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

ありがとう、それは私のために働いた:) –

12

は、ここで代替

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

はそれを生成し、これがsharedPreferenceで保存し、いつでも好きなときにそれを使用しています。

+0

+1 GUIDs/UUIDはすごいです。 –

関連する問題