aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/java/org/apache/fop/pdf/PDFInfo.java5
-rw-r--r--src/java/org/apache/fop/pdf/PDFObject.java18
2 files changed, 19 insertions, 4 deletions
diff --git a/src/java/org/apache/fop/pdf/PDFInfo.java b/src/java/org/apache/fop/pdf/PDFInfo.java
index e9833082c..e65e8e3ef 100644
--- a/src/java/org/apache/fop/pdf/PDFInfo.java
+++ b/src/java/org/apache/fop/pdf/PDFInfo.java
@@ -21,7 +21,6 @@ package org.apache.fop.pdf;
import java.util.Date;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
-import java.text.SimpleDateFormat;
/**
* class representing an /Info object
@@ -156,10 +155,8 @@ public class PDFInfo extends PDFObject {
if (creationDate == null) {
creationDate = new Date();
}
- final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
- final String str = sdf.format(creationDate) + "+00'00'";
bout.write(encode("/CreationDate "));
- bout.write(encodeString("D:" + str));
+ bout.write(encodeString(formatDateTime(creationDate)));
bout.write(encode("\n>>\nendobj\n"));
} catch (IOException ioe) {
log.error("Ignored I/O exception", ioe);
diff --git a/src/java/org/apache/fop/pdf/PDFObject.java b/src/java/org/apache/fop/pdf/PDFObject.java
index 272cd01c7..95047be14 100644
--- a/src/java/org/apache/fop/pdf/PDFObject.java
+++ b/src/java/org/apache/fop/pdf/PDFObject.java
@@ -21,6 +21,8 @@ package org.apache.fop.pdf;
// Java
import java.io.IOException;
import java.io.OutputStream;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -221,5 +223,21 @@ public abstract class PDFObject {
return buf;
}*/
}
+
+ /** Formatting pattern for PDF date */
+ protected static final SimpleDateFormat DATE_FORMAT
+ = new SimpleDateFormat("'D:'yyyyMMddHHmmssZ");
+
+ /**
+ * Formats a date/time according to the PDF specification
+ * (D:YYYYMMDDHHmmSSOHH'mm').
+ * @param time date/time value to format
+ * @return the requested String representation
+ */
+ protected String formatDateTime(Date time) {
+ String s = DATE_FORMAT.format(time);
+ int i = s.length() - 2;
+ return s.substring(0, i) + "'" + s.substring(i) + "'";
+ }
}