From 046b03471d8ee542309b1d53b80f03ad3c5b61ab Mon Sep 17 00:00:00 2001 From: Jeremias Maerki Date: Sat, 3 Apr 2004 08:30:08 +0000 Subject: [PATCH] Bugzilla Bug 28078 PDFInfo fixed to output the correct timezone for the creation date. Submitted by: Tomas Soucek Patch not applied as given. I moved the formatting of the date/time into PDFObject avoiding the inner class. git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@197485 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/fop/pdf/PDFInfo.java | 5 +---- src/java/org/apache/fop/pdf/PDFObject.java | 18 ++++++++++++++++++ 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) + "'"; + } } -- 2.39.5