diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c
new file mode 100644
index 0018720..ded9135
*** a/src/bin/pg_dump/pg_backup_archiver.c
--- b/src/bin/pg_dump/pg_backup_archiver.c
*************** PrintTOCSummary(Archive *AHX, RestoreOpt
*** 964,975 ****
  	teSection	curSection;
  	OutputContext sav;
  	const char *fmtName;
  
  	sav = SaveOutput(AH);
  	if (ropt->filename)
  		SetOutput(AH, ropt->filename, 0 /* no compression */ );
  
! 	ahprintf(AH, ";\n; Archive created at %s", ctime(&AH->createDate));
  	ahprintf(AH, ";     dbname: %s\n;     TOC Entries: %d\n;     Compression: %d\n",
  			 AH->archdbname, AH->tocCount, AH->compression);
  
--- 964,978 ----
  	teSection	curSection;
  	OutputContext sav;
  	const char *fmtName;
+ 	struct tm  *tm = localtime(&AH->createDate);
+ 	char		stamp_str[64];
  
  	sav = SaveOutput(AH);
  	if (ropt->filename)
  		SetOutput(AH, ropt->filename, 0 /* no compression */ );
  
! 	strftime(stamp_str, sizeof(stamp_str), "%Y-%m-%d %H:%M:%S %z", tm);
! 	ahprintf(AH, ";\n; Archive created at %s\n", stamp_str);
  	ahprintf(AH, ";     dbname: %s\n;     TOC Entries: %d\n;     Compression: %d\n",
  			 AH->archdbname, AH->tocCount, AH->compression);
  
*************** checkSeek(FILE *fp)
*** 3455,3475 ****
  static void
  dumpTimestamp(ArchiveHandle *AH, const char *msg, time_t tim)
  {
! 	char		buf[256];
  
! 	/*
! 	 * We don't print the timezone on Win32, because the names are long and
! 	 * localized, which means they may contain characters in various random
! 	 * encodings; this has been seen to cause encoding errors when reading the
! 	 * dump script.
! 	 */
! 	if (strftime(buf, sizeof(buf),
! #ifndef WIN32
! 				 "%Y-%m-%d %H:%M:%S %Z",
! #else
! 				 "%Y-%m-%d %H:%M:%S",
! #endif
! 				 localtime(&tim)) != 0)
  		ahprintf(AH, "-- %s %s\n\n", msg, buf);
  }
  
--- 3458,3466 ----
  static void
  dumpTimestamp(ArchiveHandle *AH, const char *msg, time_t tim)
  {
! 	char		buf[64];
  
! 	if (strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S %z", localtime(&tim)) != 0)
  		ahprintf(AH, "-- %s %s\n\n", msg, buf);
  }
  
diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c
new file mode 100644
index 4050091..b2b3e6f
*** a/src/bin/pg_dump/pg_dumpall.c
--- b/src/bin/pg_dump/pg_dumpall.c
*************** executeCommand(PGconn *conn, const char
*** 2039,2060 ****
  static void
  dumpTimestamp(char *msg)
  {
! 	char		buf[256];
  	time_t		now = time(NULL);
  
! 	/*
! 	 * We don't print the timezone on Win32, because the names are long and
! 	 * localized, which means they may contain characters in various random
! 	 * encodings; this has been seen to cause encoding errors when reading the
! 	 * dump script.
! 	 */
! 	if (strftime(buf, sizeof(buf),
! #ifndef WIN32
! 				 "%Y-%m-%d %H:%M:%S %Z",
! #else
! 				 "%Y-%m-%d %H:%M:%S",
! #endif
! 				 localtime(&now)) != 0)
  		fprintf(OPF, "-- %s %s\n\n", msg, buf);
  }
  
--- 2039,2048 ----
  static void
  dumpTimestamp(char *msg)
  {
! 	char		buf[64];
  	time_t		now = time(NULL);
  
! 	if (strftime(buf, sizeof(buf), "%Y-%m-%d %H:%M:%S %z", localtime(&now)) != 0)
  		fprintf(OPF, "-- %s %s\n\n", msg, buf);
  }
  
