Android:唯一 ID 生成器和区域设置

发布于 2024-12-04 21:06:41 字数 588 浏览 2 评论 0原文

我有一个如下的函数来为我的应用程序生成唯一的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不乱于心 2024-12-11 21:06:41

除非您执意使用时间和区域设置在应用程序中生成唯一 ID,否则这里有一个替代方案:

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

生成它并存储它,这是一个共享首选项,并在需要时使用它。

Unless you are hellbent on using time and locale for generating unique ID in your application Here is an alternative

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

Generate it and store this is a sharedPreference and use it whenever you want.

来日方长 2024-12-11 21:06:41

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

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

You also have to specify Locale.US with your SimpleDateFormat.

SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.US);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文