Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将java.util.Date转换为org.joda.time.DateTime?_Datetime_Date_Vaadin - Fatal编程技术网

如何将java.util.Date转换为org.joda.time.DateTime?

如何将java.util.Date转换为org.joda.time.DateTime?,datetime,date,vaadin,Datetime,Date,Vaadin,我必须使用java.util.Date类作为表中的字段类型。 但是我想在joda time的帮助下更改日期字段的显示格式(舒适,更喜欢使用),这就是为什么我想将日期转换为DateTime 我知道我监督了一些事情,因为stackoverflow中没有这样的问题:)但是我在DateTime构造函数中找不到解决方案等等。 反向转换DateTime.toDate(); 存在,但反过来呢 提前谢谢你的回答 Cs在Vaadin中,如果要在没有joda的表中更改显示格式,只需重写方法受保护的字符串format

我必须使用java.util.Date类作为表中的字段类型。 但是我想在joda time的帮助下更改日期字段的显示格式(舒适,更喜欢使用),这就是为什么我想将日期转换为DateTime

我知道我监督了一些事情,因为stackoverflow中没有这样的问题:)但是我在DateTime构造函数中找不到解决方案等等。 反向转换DateTime.toDate(); 存在,但反过来呢

提前谢谢你的回答


Cs

在Vaadin中,如果要在没有joda的表中更改显示格式,只需重写方法
受保护的字符串formatPropertyValue(对象rowId、对象colId、,
属性)

下面是一个例子:

Table t = new Table() {

        @Override
        protected String formatPropertyValue(Object rowId, Object colId,
                Property property) {
            Object v = property.getValue();
            if (v instanceof Date) {
                Date dateValue = (Date) v;
                return new SimpleDateFormat("yyyy-MMMM-dd").format(dateValue);
            }
            return super.formatPropertyValue(rowId, colId, property);
        }

    };
问候


"ric

在Vaadin中,如果要在没有joda的情况下更改表中的显示格式,只需重写方法
受保护的字符串formatPropertyValue(对象rowId、对象colId、,
属性)

下面是一个例子:

Table t = new Table() {

        @Override
        protected String formatPropertyValue(Object rowId, Object colId,
                Property property) {
            Object v = property.getValue();
            if (v instanceof Date) {
                Date dateValue = (Date) v;
                return new SimpleDateFormat("yyyy-MMMM-dd").format(dateValue);
            }
            return super.formatPropertyValue(rowId, colId, property);
        }

    };
问候

爱里克

是的,利用乔达时间 一定要使用Java8中的或(受Joda Time的启发)。旧的和旧的阶级是出了名的麻烦、混乱和过时

另外,请阅读和上的维基百科页面

是,将日期传递给Joda Time构造函数 ➔ 确实可以,您可以将对象传递给Joda Time对象的

API文档有点混乱,因为它显然属于获取实例的构造函数的全面版本。如果该对象实际上是一个
java.util.Date
,那么Joda Time将提取它的毫秒计数,并将其作为自己的数字

时区
DateTime
构造函数还指定时区。默认情况下,JVM的当前默认时区被分配。我建议您始终通过所需的时区,而不是隐式地依赖默认值,即使这意味着调用
getDefault

示例代码 下面是Joda Time 2.5中的一些示例代码,展示了如何将java.util.Date传递给Joda Time构造函数

java.util.Date date = new java.util.Date();
DateTimeZone zone = DateTimeZone.forID( "America/Montreal" );
DateTime dateTimeMontreal = new DateTime( date , zone );
DateTime dateTimeUtc = dateTimeMontreal.withZone( DateTimeZone.UTC ); // Adjust to another time zone.
转储到控制台

System.out.println( "date: " + date ); // Misleading output. A j.u.Date is in UTC but its toString method applies JVM’s current default time zone.
System.out.println( "dateTimeMontreal: " + dateTimeMontreal );
System.out.println( "dateTimeUtc: " + dateTimeUtc );
跑步的时候

日期:2014年10月18日星期六18:54:55
日期时间蒙特利尔:2014-10-18T21:54:55.740-04:00
日期时间UTC:2014-10-19T01:54:55.740Z
如问题所示,要从DateTime转到java.util.Date,请调用
toDate

java.util.Date date = dateTimeMontreal.toDate();
是的,利用乔达的时间 一定要使用Java8中的或(受Joda Time的启发)。旧的和旧的阶级是出了名的麻烦、混乱和过时

另外,请阅读和上的维基百科页面

是,将日期传递给Joda Time构造函数 ➔ 确实可以,您可以将对象传递给Joda Time对象的

API文档有点混乱,因为它显然属于获取实例的构造函数的全面版本。如果该对象实际上是一个
java.util.Date
,那么Joda Time将提取它的毫秒计数,并将其作为自己的数字

时区
DateTime
构造函数还指定时区。默认情况下,JVM的当前默认时区被分配。我建议您始终通过所需的时区,而不是隐式地依赖默认值,即使这意味着调用
getDefault

示例代码 下面是Joda Time 2.5中的一些示例代码,展示了如何将java.util.Date传递给Joda Time构造函数

java.util.Date date = new java.util.Date();
DateTimeZone zone = DateTimeZone.forID( "America/Montreal" );
DateTime dateTimeMontreal = new DateTime( date , zone );
DateTime dateTimeUtc = dateTimeMontreal.withZone( DateTimeZone.UTC ); // Adjust to another time zone.
转储到控制台

System.out.println( "date: " + date ); // Misleading output. A j.u.Date is in UTC but its toString method applies JVM’s current default time zone.
System.out.println( "dateTimeMontreal: " + dateTimeMontreal );
System.out.println( "dateTimeUtc: " + dateTimeUtc );
跑步的时候

日期:2014年10月18日星期六18:54:55
日期时间蒙特利尔:2014-10-18T21:54:55.740-04:00
日期时间UTC:2014-10-19T01:54:55.740Z
如问题所示,要从DateTime转到java.util.Date,请调用
toDate

java.util.Date date = dateTimeMontreal.toDate();

可能的复制好的,它工作,谢谢,但根据api没有这样一个构造函数接受日期。。。再次感谢,也许我误解了什么。可能的重复好的,它可以工作,谢谢,但根据api没有这样一个接受日期的构造函数。。。再次感谢,也许我搞错了什么。谢谢埃里克,但是很多人都喜欢jodatime,这就是为什么我想了解一下。但是我很感谢你的努力。谢谢埃里克,但是很多人都喜欢jodatime,这就是为什么我想了解一下。但我感谢你的努力。