首页 > 解决方案 > 如果将Calendar.getInstance()的timeInMillis值改成int,可以是唯一的id吗?

问题描述

在 Android 应用程序开发过程中,每个项目都尝试附加一个唯一的 int 类型 id。我认为创建项目的点是唯一的,所以在调用 Calendar.getInstance() 之后,我想通过将 timeInMillis 的值更改为 toInt() 来给出它。就算转化成这样的int,值是不是就变得唯一了?

前任)

 val calendar = Calendar.getInstance()
 val longId = calendar.timeInMillis          // 1611807420557
 val intId = calendar.timeinMillis.toInt()   // 1194684557

经过我的测试,输出了以上数值。1194684557 值是否更改为 int 唯一 ID?

标签: androiduuidandroid-calendarunique-id

解决方案


toInt()这不是一个好主意,因为如果您的 long 超出 int 范围,它将无法工作。我建议将毫秒除以 1000。然后将其转换为 int。尝试这样的事情:

val intId = (longId / 1000).toInt()

推荐阅读