我們在java.util.Date對象的序列化JAXB /反序列化過程中使用的SimpleDateFormat,我寫如下的效用來實現這一目標SimpleDateFormat.parse和SimpleDateFormat.format不產生相同的值
public DateFormat getDateFormat(String format){
DateFormat formatter = new SimpleDateFormat(format);
formatter.setLenient(false);
return formatter;
}
@Test public void testMarshallUnmarshall(){
String str1 = "2001-07-04T12:08:56.235-07:00"; // Example from http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html DateFormat formatter = getDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
Date date = formatter.parse(str1);
String str2 = formatter.format(date);
assertEquals(str1.equals(str2)); //This fails }
我注意到是str1 =「2001-07-04T12:08:56.235-07:00」;和str2 = 2001-07-04T14:08:56.235-05:00
我需要做些什麼來確保兩個日期是一樣的?
感謝
你應該編輯並告訴我們什麼'formatter'(在'testMarshallUnmarshall') – 2015-02-11 19:55:34
我的道歉,雖然複製文本到這篇文章,下面的代碼是不正確可見。 formatter派生爲DateFormat formatter = getDateFormat(「yyyy-MM-dd'T'HH:mm:ss.SSSXXX」); – KumarRaja 2015-02-11 20:01:42