将多个变量存储到一个变量中-Java

将多个变量存储到一个变量中-Java,java,android,variables,Java,Android,Variables,所以我很难将多个变量分配给一个变量 我的应用程序中有一个日期选择器和时间选择器,用户选择的值存储为单独的变量。然后,我想获取所有变量并将它们分配给一个变量,这样我就可以存储用户输入并在其他活动中公开使用它 编辑: 因此,我正在使用一个第三方库,该库使用动画图形,为了生成图形,我必须传递整数。因此,在尝试了您的所有建议后,这项建议正在以格里高利的方式发挥作用: timeselected = new GregorianCalendar(yearNow, monthNow, dayNow, hourN

所以我很难将多个变量分配给一个变量

我的应用程序中有一个日期选择器和时间选择器,用户选择的值存储为单独的变量。然后,我想获取所有变量并将它们分配给一个变量,这样我就可以存储用户输入并在其他活动中公开使用它

编辑: 因此,我正在使用一个第三方库,该库使用动画图形,为了生成图形,我必须传递整数。因此,在尝试了您的所有建议后,这项建议正在以格里高利的方式发挥作用:

timeselected = new GregorianCalendar(yearNow, monthNow, dayNow, hourNow, minuteNow).getTime();
现在唯一的问题是它存储为日期,不能转换为整数

例如,以下是我迄今为止所尝试的:

我用于存储选择器选择的变量有:

 int dayNow, monthNow, yearNow, hourNow, minuteNow;
我尝试将它们分配给一个变量,如下所示:

timeselected = (yearNow) + (monthNow) + (dayNow) + (hourNow) + (minuteNow);
虽然这给了我所有变量的总和。e、 g.2017年加上11个月等

有人知道我如何将所选数据存储为整数格式的日期格式吗

谢谢

试试这个:

int dayNow=3, monthNow=11, yearNow=2017, hourNow=9, minuteNow=20;
Date timeselected = new GregorianCalendar(yearNow, monthNow-1, dayNow, hourNow, minuteNow).getTime();
System.out.println(timeselected );
使用历元计数器

首先,了解一下历史:如果您试图打印

System.getCurrentMillis();
打电话,你会注意到它会打印出类似1509719045的内容。这些是从1970年1月1日开始的毫秒,即开始计数的日期

为了回答你的问题,我会阅读


现在,您不仅拥有存储整个日期和时间的单个整数变量,而且还可以轻松地将其转换回日期或日历。

这很难在注释中描述,但我认为这就是您要寻找的格式,我假设您正在寻找yyyymmddhhmm:

采纳Nabin Bhandari的建议:

只需使用以下命令转换为long:

如果不是这样,我还不清楚你需要什么

编辑:: 对于任何需要至少有2位数字的整数值,例如2=>02,则可以将int格式化为如下字符串:

String sDay = String.format("%02d", dayNow);

这个过去的答案可能会有所帮助。但是您可以使用java.time框架并引入您的值:您可以将其转换为时间戳。请参见:因为所有变量都是int,所以它们被添加为整数。请用这个,它会解决你的问题。TimesSelected=“”+Dearnow+monthNow+…只需使用日历对象转换为时间戳问题是什么?只需使用类。我不想硬编码值。变量取决于用户从日期和时间选择器中选择的内容。此答案并不意味着直接复制/粘贴到项目中-它只是显示如何获取整数和完整日期。您需要修改以满足您的需要。@ALMAC2将用户输入值指定给dayNow、monthNow等,而不是硬编码的值。尝试了此方法。虽然我将它作为一个整数通过计算传递,因此它必须是一个整数。此方法将其设置为计算不接受的日期method@TheAlmac2::您在OP中没有提到任何计算。您只声明存储用户输入并在其他活动中公开使用。也许你应该编辑你的OP,并更清楚地解释你将如何处理你希望生成的日期。看起来一切都很好。尽管我的应用程序因以下错误而崩溃:java.lang.NumberFormatException:对于输入字符串:20171131524好的,我会尝试一下,我必须对每个变量都这样做吗?年-月etcInteger不能容纳12位数字。@NabinHandari::正确,我已编辑了答案。当我不“调试”自己的解决方案时,就会发生这种情况!int允许的最大值为2147483647-比20171131524小10倍。感谢各位,现在可以这样做了,只是格式仍然是一个很长的数字。我的图书馆也接受一个长期的!
long timeselected = Long.parseLong(sTimeselected);
String sDay = String.format("%02d", dayNow);