我有如下功能为我的应用程序生成唯一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提前一段时间。
答案 0 :(得分:13)
除非您对使用时间和区域设置在应用程序中生成唯一ID感到满意,否则这是另一种选择
String uniqueId = UUID.randomUUID().toString();
生成它并存储这是一个sharedPreference并随时使用它。
答案 1 :(得分:5)
您还必须使用Locale.US
指定SimpleDateFormat
。
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.US);