Java 将ArrayList中的项转换为不同类型

Java 将ArrayList中的项转换为不同类型,java,arraylist,simpledateformat,Java,Arraylist,Simpledateformat,我的程序中有一个部分,用户登录时可以访问应用程序,当用户登录时,我有一个时间戳,并将其存储到ArrayList中。当用户注销时,我会为他们注销时另取一个时间戳。我一直在试着从对方身上减去2次,但它不允许我这样做。它们存储在字符串数组列表中,我知道不能减去字符串,所以我尝试了转换为double、int、date等。。。这些都不适合我。我的问题是,我想知道两次之间的差异。我也知道还有其他类似的问题,但没有具体的问题,这就是为什么我张贴它。我不想发布一个副本 代码: ArrayList是程序顶部的一个

我的程序中有一个部分,用户登录时可以访问应用程序,当用户登录时,我有一个时间戳,并将其存储到ArrayList中。当用户注销时,我会为他们注销时另取一个时间戳。我一直在试着从对方身上减去2次,但它不允许我这样做。它们存储在字符串数组列表中,我知道不能减去字符串,所以我尝试了转换为double、int、date等。。。这些都不适合我。我的问题是,我想知道两次之间的差异。我也知道还有其他类似的问题,但没有具体的问题,这就是为什么我张贴它。我不想发布一个副本

代码:

ArrayList是程序顶部的一个全局变量。我要减去的两个变量名是loginTimelogoutTime,以及它们在ArrayList中的索引


感谢您的指导

您可以使用
SimpleDataFormat.parse()
将字符串转换回日期。一旦它们都是
Date
格式:

long elapsed = logoutDate.getTime() - loginDate.getTime();  // Elapsed time in ms

您有一个设计问题:您不应该在登录/注销时间戳列表中存储
字符串。您应该存储
Date
对象,这些对象本质上是时间戳。然后可以减去每个日期对的时间。@javaGeek显示的代码太多了。你的工作是找出相关的代码部分,而不是我们的。您询问的是日期时间值的数组列表。因此,我们不需要在数据库或JOptionPane中查询密码。此外,你说你的问题是不同的(不是重复的),但你忽略了解释是什么使它特别。似乎是经常重复的问题,(a)如何查询数据库中的日期时间值,(b)如何将字符串解析为日期时间值,以及(c)如何计算经过的时间。@BasilBourque不,c是我唯一的问题,如果你读过的话,我已经解析过这些类型,但从未提到如何查询我的数据库。
long elapsed = logoutDate.getTime() - loginDate.getTime();  // Elapsed time in ms