Android:唯一ID生成器和Locale

时间:2011-09-16 04:37:43

标签: java android calendar

我有如下功能为我的应用程序生成唯一ID

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");
更改区域设置时出现

问题。例如,如果我将语言环境更改为阿拉伯语,则会在某些阿拉伯字母中生成唯一ID。我打算在网络服务中不支持阿拉伯字母。

创建唯一ID时,我必须坚持使用Locale.US。我怎么能实现这个?我尝试如下,但它也没有用。

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

感谢yoru提前一段时间。

2 个答案:

答案 0 :(得分:13)

除非您对使用时间和区域设置在应用程序中生成唯一ID感到满意,否则这是另一种选择

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

生成它并存储这是一个sharedPreference并随时使用它。

答案 1 :(得分:5)

您还必须使用Locale.US指定SimpleDateFormat

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