我測試Joda日期時間對java.util.Date
與UTC時區,我遇到了一個有趣的例子:爲什麼Joda DateTime與Java Date不同的結果?
import org.joda.time.DateTime;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Date;
public class Main {
public static void main(String[] args) throws ParseException {
String dt = "2011-06-11T12:00:00Z";
String format = "yyyy-MM-dd'T'hh:mm:ss'Z'";
DateFormat df = new SimpleDateFormat(format);
df.setTimeZone(TimeZone.getTimeZone("UTC"));
Date d = df.parse(dt);
DateTime joda = new DateTime(dt);
// Output Sat Jun 11 05:00:00 PDT 2011
System.out.println(joda.toDate());
// Output Fri Jun 10 17:00:00 PDT 2011
System.out.println(d);
}
}
我不知道這是任何一個或我錯過了這裏的東西很重要的一個錯誤?
您只將UTC時區設置爲「d」變量,即java.util.Date。爲Joda DateTime「joda」變量設置時區。 –
順便說一句,您的DateTime正在獲取默認時區。如果您想要UTC/GMT(或任何特定時區),請傳遞['DateTimeZone'](http://www.joda.org/joda-time/apidocs/org/joda/time/DateTimeZone.html)對象。對於UTC/GMT,有一個[預定義常數「UTC」](http://www.joda.org/joda-time/apidocs/org/joda/time/DateTimeZone.html#UTC)。像這樣:'DateTime dateTime = new DateTime(「2011-06-11T12:00:00Z」,DateTimeZone.UTC);' –