Author: lehmi
Date: Tue Apr 27 19:08:02 2010
New Revision: 938604

URL: http://svn.apache.org/viewvc?rev=938604&view=rev
Log:
PDFBOX-701: added a bunch of potential date formats. Patch by Peter Lenahan 
(Peter_Lenahan at ibi dot com)

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/DateConverter.java

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/DateConverter.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/DateConverter.java?rev=938604&r1=938603&r2=938604&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/DateConverter.java 
(original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/DateConverter.java 
Tue Apr 27 19:08:02 2010
@@ -38,8 +38,6 @@ import org.apache.pdfbox.cos.COSString;
  */
 public class DateConverter
 {
-    private static final SimpleDateFormat PDF_DATE_FORMAT = new 
SimpleDateFormat( "yyyyMMddHHmmss" );
-
     //The Date format is supposed to be the PDF_DATE_FORMAT, but not all PDF 
documents
     //will use that date, so I have added a couple other potential formats
     //to try if the original one does not work.
@@ -53,7 +51,48 @@ public class DateConverter
         new SimpleDateFormat("EEEE, MMM dd, yyyy"), // Acrobat Distiller 1.0.2 
for Macintosh
         new SimpleDateFormat("EEEE MMM dd, yyyy HH:mm:ss"), // ECMP5
         new SimpleDateFormat("EEEE MMM dd HH:mm:ss z yyyy"), // GNU 
Ghostscript 7.0.7
-        new SimpleDateFormat("EEEE, MMM dd, yyyy 'at' hh:mma") // Acrobat Net 
Distiller 1.0 for Windows
+        new SimpleDateFormat("EEEE, MMM dd, yyyy 'at' hh:mma"), // Acrobat Net 
Distiller 1.0 for Windows
+        new SimpleDateFormat("d/MM/yyyy hh:mm:ss"), // PDFBOX-164
+        new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"), // PDFBOX-170
+        new SimpleDateFormat("EEEEEEEEEE, MMMMMMMMMMMM dd, yyyy"),  // 
PDFBOX-465 
+        new SimpleDateFormat("dd MMM yyyy hh:mm:ss"),  // for 26 May 2000 
11:25:00          
+        new SimpleDateFormat("dd MMM yyyy hh:mm"),  // for 26 May 2000 11:25
+               new SimpleDateFormat("M/dd/yyyy hh:mm:ss"),             
+               new SimpleDateFormat("MM/d/yyyy hh:mm:ss"),
+               new SimpleDateFormat("M/dd/yyyy"),              
+               new SimpleDateFormat("MM/d/yyyy"),
+               new SimpleDateFormat("M/d/yyyy hh:mm:ss"),
+               new SimpleDateFormat("M/d/yyyy"),
+               new SimpleDateFormat("M/d/yy hh:mm:ss"),
+               new SimpleDateFormat("M/d/yy"),
+        new SimpleDateFormat("yyyymmdd hh:mm:ss Z"), // 
+        new SimpleDateFormat("yyyymmdd hh:mm:ss"),      // 
+        new SimpleDateFormat("yyyymmdd'+00''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'+01''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'+02''00'''"), //             
+        new SimpleDateFormat("yyyymmdd'+03''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'+04''00'''"), //
+        new SimpleDateFormat("yyyymmdd'+05''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'+06''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'+07''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'+08''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'+09''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'+10''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'+11''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'+12''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'-01''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'-02''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'-03''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'-04''00'''"), //
+        new SimpleDateFormat("yyyymmdd'-05''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'-06''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'-07''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'-08''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'-09''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'-10''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'-11''00'''"), // 
+        new SimpleDateFormat("yyyymmdd'-12''00'''"), // 
+        new SimpleDateFormat("yyyymmdd"), // for 20090401+0200   
     };
 
     private DateConverter()
@@ -79,7 +118,8 @@ public class DateConverter
             long hours = Math.abs( offsetInMinutes/60 );
             long minutes = Math.abs( offsetInMinutes%60 );
             buffer.append( "D:" );
-            buffer.append( PDF_DATE_FORMAT.format( date.getTime() ) );
+            // PDFBOX-402 , SimpleDateFormat is not thread safe, created it 
when you use it.
+            buffer.append( new SimpleDateFormat( "yyyyMMddHHmmss" ).format( 
date.getTime() ) );
             if( offsetInMinutes == 0 )
             {
                 buffer.append( "Z" );


Reply via email to