java - 无法使用 JodaTime Android 将时间转换为日期时间

标签 java android jodatime

我有一个时间文本字段,用户可以在文本字段中输入上午 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/

相关文章:

java - 从子类更改父类(super class)实例变量

java - 如何在JavaMail中使用2个以上的SearchTerm?

android - 如何关闭 Android 中的弹出窗口?

java - 当人们停止使用您的小部件时如何释放相机?

java - MsgPack第三方对象序列化

java - 使用joda time api计算两个日期之间的天数

java - 从java代码调用rabbitmqpublisher

java - 如果使用以下逻辑条件未执行

android - 如何定义 tvdpi 平板电脑和 tvdpi 手机的尺寸文件

java - 从 org.joda.time.DateTime 转换为 java.util.Calendar 的方法