我有一个时间文本字段,用户可以在文本字段中输入上午 9:30 或下午 9:30,一旦他们单击下一个 Activity 的按钮,我需要将该时间存储在日期时间字段中,我遇到的问题是,我无法使用 DateTime.parse("9:30 AM") (使用 joda 时间)将时间转换为 DateTime 变量。
如有任何建议,我们将不胜感激。
更新:
这是我尝试使用的代码的一部分
Classx x = new Classx();
注意:文本框中“at”的值为 9:30 PM
String d = at.getText().toString();
x.xTime = DateTime.parse(d);
at 是选中“时间”设置的 EditText。 Classx是存储变量的类。
类布局
public class Classx extends AttributeContainer implements KvmSerializable
{
public org.joda.time.DateTime xTime;
public String C;
public org.joda.time.DateTime Date;
}
注意:所有变量名称均已更改以保护无辜者。
最佳答案
在 Joda-Time 中,时间值由 LocalTime
对象表示。以下是读取您给出的字符串的示例:
String inputTime = "9:30 PM";
DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
builder.appendPattern("h:mm a");
LocalTime time = LocalTime.parse(inputTime, builder.toFormatter());
如果您需要以某种方式将其与现有的 DateTime
结合起来,您可以这样做:
DateTime orig = DateTime.now(); // or whatever
DateTime dt = orig.withTime(time);
关于java - 无法使用 JodaTime Android 将时间转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28988701/