是的,使用Joda-Time
当然在Java 8中使用Joda-Time或java.time package(受Joda-Time启发)。旧的java.util.Date
和java.util.Calendar
班是出了名的麻烦,混乱和过时。
此外,请阅读有关UTC和ISO 8601的维基百科页面。
是,通日期为乔达时间构造
➔的确不错,你可以传递一个java.util.Date
对象的乔达时间DateTime
对象的constructor。
该API文档有点混乱,因为这显然落入构造函数的catch-all版本采取java.lang.Object
实例。如果该对象实际上是java.util.Date
,则Joda-Time将提取其毫秒数,因为它自己的数字为epoch。
时区
一个DateTime
构造还分配一个时区。默认情况下,JVM的当前默认时区已分配。我建议你总是通过一个期望的时区,而不是默认依赖默认即使这意味着调用getDefault
。
示例代码
以下是在约达时间2.5一些示例代码示出了如何将一个java.util.Date传递到约达时间的构造函数。
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);
运行时。
date: Sat Oct 18 18:54:55 PDT 2014
dateTimeMontreal: 2014-10-18T21:54:55.740-04:00
dateTimeUtc: 2014-10-19T01:54:55.740Z
如问题所示,从日期时间到java.util.Date去,叫toDate
。
java.util.Date date = dateTimeMontreal.toDate();
可能出现重复http://stackoverflow.com/questions/5042587/convert-from-java-util-date-to-jodatime – Xorty 2012-01-02 10:21:41
好了,它的作品,感谢,但根据API没有这样的接受日期的构造函数...再次感谢,也许我误解了一些东西。 – cscsaba 2012-01-02 10:34:15
不客气:) – Xorty 2012-01-02 11:12:59