将 Date+TIme 选择器变量分配给 DateTime (Joda) 或 Date 变量

Assigning Date+TIme Picker Variables to a DateTime (Joda) or Date Variable

一段时间以来,我一直在为这个问题尝试很多解决方案,但都没有成功。

我有 2 个选择器,一个是日期选择器,一个是时间选择器。当用户选择他们的日期和时间时,选择存储在这些变量中:

我想要实现的是我可以将这些变量分配给 DateTime 变量。例如:

DateTime timeselectedbyuser = dayNow + monthNow + yearNow + hourNow+ minuteNow;

我需要它是 DateTime 类型的原因是我正在使用 JodaTime 并进行计算以获取当前时间和用户通过我的日期选择的时间之间的时间差(以分钟为单位)采摘者。

这是我试过的一些方法,但不成功:

//START DATE SELECTED BY USER
            timeselectedbyuser = DateTime.parse(String.valueOf(dayNow + monthNow + yearNow + hourNow + minuteNow));

            //CURRENT DATE
            currentdatetime = new DateTime();
            DateTimeFormatter form = DateTimeFormat.forPattern("dd MMM yyyy" + " h:mm a ");


            long millis1 = timeselectedbyuser.getMillis();
            long milis2 = currentdatetime.getMillis();
            long diff = milis2 - millis1;

            long diffinMinutes = diff / (60 * 1000);



            diffinmins.setText((int) diffinMinutes);

谁能帮帮我?

我想问题在于您不能简单地添加 int 变量并将它们解析为 String 以获得 DateTime。您要么必须使用格式,要么使用 jodatime Doc:

提供的 org.joda.time.DateTime 构造函数之一
DateTime dt = new DateTime(yearNow, monthNow, dayNow, hourNow, minuteNow);

或使用SimpleDateFormat:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy:MM:dd:HH:mm");
Date date = null;
try {
    date = simpleDateFormat.parse(yearNow + ":" + monthNow + ":" + dayNow + ":" + hourNow + ":" + minuteNow);
} catch (ParseException e) {
    e.printStackTrace();

检查 JavaDoc 以找到适合您的日期格式的格式字符串。例如,如果您使用 24 小时制,则必须使用 HH,如果您使用 12 小时制,则必须使用 KK:a

希望对您有所帮助