diff --git a/src/com/owncloud/android/lib/common/network/WebdavUtils.java b/src/com/owncloud/android/lib/common/network/WebdavUtils.java index b5b3607c..a285e13f 100644 --- a/src/com/owncloud/android/lib/common/network/WebdavUtils.java +++ b/src/com/owncloud/android/lib/common/network/WebdavUtils.java @@ -35,15 +35,17 @@ import android.net.Uri; public class WebdavUtils { public static final SimpleDateFormat DISPLAY_DATE_FORMAT = new SimpleDateFormat( "dd.MM.yyyy hh:mm"); - private static final String DATETIME_FORMATS[] = { - "yyyy-MM-dd'T'HH:mm:ss'Z'", - "EEE, dd MMM yyyy HH:mm:ss zzz", - "yyyy-MM-dd'T'HH:mm:ss.sss'Z'", - "yyyy-MM-dd'T'HH:mm:ssZ", - "EEE MMM dd HH:mm:ss zzz yyyy", - "EEEEEE, dd-MMM-yy HH:mm:ss zzz", - "EEE MMMM d HH:mm:ss yyyy", - "yyyy-MM-dd hh:mm:ss" }; + + private static final SimpleDateFormat DATETIME_FORMATS[] = { + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US), + new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US), + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sss'Z'", Locale.US), + new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.US), + new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US), + new SimpleDateFormat("EEEEEE, dd-MMM-yy HH:mm:ss zzz", Locale.US), + new SimpleDateFormat("EEE MMMM d HH:mm:ss yyyy", Locale.US), + new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.US) + }; public static String prepareXmlForPropFind() { String ret = ""; @@ -56,11 +58,16 @@ public class WebdavUtils { public static Date parseResponseDate(String date) { Date returnDate = null; + SimpleDateFormat format = null; for (int i = 0; i < DATETIME_FORMATS.length; ++i) { try { - returnDate = new SimpleDateFormat (DATETIME_FORMATS[i], Locale.US).parse(date); + format = DATETIME_FORMATS[i]; + synchronized(format) { + returnDate = format.parse(date); + } return returnDate; } catch (ParseException e) { + // this is not the format } } return null;