Android:唯一 ID 生成器和区域设置
我有一个如下的函数来为我的应用程序生成唯一的 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);
感谢您提前抽出时间。
I have a function as below to generate unique ID for my application
public static String now(String dateFormat) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
return sdf.format(cal.getTime());
}
I call the function using following way
incident_id = IncidentIdGenerator.now("ddMMyyyyHHmmss");
problem occures when I change the Locale. For an example if I change the locale to Arab, unique ID is generated in some arab letters. Arab letters are not supported in the web service which I'm gonna call.
I must stick to Locale.US when creating unique ID. How can I acheive this?? I tried as below but it didn't work too.
Calendar cal = Calendar.getInstance(Locale.US);
Thanks for yoru time in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
除非您执意使用时间和区域设置在应用程序中生成唯一 ID,否则这里有一个替代方案:
生成它并存储它,这是一个共享首选项,并在需要时使用它。
Unless you are hellbent on using time and locale for generating unique ID in your application Here is an alternative
Generate it and store this is a sharedPreference and use it whenever you want.
您还必须使用
SimpleDateFormat
指定Locale.US
。You also have to specify
Locale.US
with yourSimpleDateFormat
.