You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2010/04/27 21:08:02 UTC
svn commit: r938604 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/DateConverter.java
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" );