diff --git a/src/xpdev/unixtime.c b/src/xpdev/unixtime.c
new file mode 100644
index 0000000000000000000000000000000000000000..a27c1f15dd60f9117d0a58daa8865752b29ee1d0
--- /dev/null
+++ b/src/xpdev/unixtime.c
@@ -0,0 +1,114 @@
+/* $Id$ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+#include <string.h>
+#ifndef __unix__
+#include <dos.h>
+#endif
+#include <ctype.h>
+#define USE_SNPRINTF	/* we don't need safe_snprintf for this project */
+#include "genwrap.h"
+
+#define TIMEZONE	_timezone
+#define DAYLIGHT	_daylight
+
+/****************************************************************************/
+/* Converts a date string in format MM/DD/YY into unix time format			*/
+/****************************************************************************/
+time_t dstrtounix(char *str)
+{
+	char *p;
+	struct tm t;
+
+	memset(&t,0,sizeof(t));
+	t.tm_year=((str[6]&0xf)*10)+(str[7]&0xf);
+	if(t.tm_year<70)
+		t.tm_year+=100;
+	t.tm_mon=((str[0]&0xf)*10)+(str[1]&0xf);
+	if(t.tm_mon) t.tm_mon--;
+	t.tm_mday=((str[3]&0xf)*10)+(str[4]&0xf);
+	p=strchr(str,' ');
+	if(p) {
+		t.tm_hour=atoi(++p);
+		p=strchr(p,':');
+		if(p) {
+			t.tm_min=atoi(++p);
+			p=strchr(p,':');
+			if(p)
+				t.tm_sec=atoi(++p); } }
+	return(mktime(&t));
+}
+
+time_t checktime()
+{
+	struct tm tm;
+
+	memset(&tm,0,sizeof(tm));
+	tm.tm_year=94;
+	tm.tm_mday=1;
+	return(mktime(&tm)^0x2D24BD00L);
+}
+
+int main(int argc, char **argv)
+{
+	char		str[256];
+	char		revision[16];
+	time_t		t;
+	struct tm*	tm;
+	int			argn=1;
+
+	printf("\n");
+	DESCRIBE_COMPILER(str);
+	sscanf("$Revision$", "%*s %s", revision);
+
+	printf("Rev %s Built " __DATE__ " " __TIME__ " with %s\n\n", revision, str);
+
+#if 0
+
+	if((t=checktime())!=0L) {
+		printf("Time problem (%08lX)\n",t);
+		exit(1); }
+#endif
+
+	if(argc<2)
+		printf("usage: unixtime [-z] <MM/DD/YY HH:MM:SS || time_t>\n\n");
+
+	if(argc>1 && stricmp(argv[1],"-z")==0)	{ /* zulu/GMT/UTC timezone */
+		printf("Setting timezone to Zulu/GMT/UTC\n\n");
+		putenv("TZ=UTC0");
+		tzset();
+		argn++;
+	}
+
+	printf("timezone=%d\n", TIMEZONE);
+	printf("daylight=%d\n", DAYLIGHT);
+	printf("\n");
+
+	if(argc>argn && argv[argn][2]=='/') {
+		sprintf(str,"%s %s",argv[argn],argc>argn+1 ? argv[argn+1] : "");
+		if((t=dstrtounix(str))==-1) {
+			printf("dstrtounix error\n");
+			return -1;
+		}
+		printf("Using specified date and time: ");
+	} else if(argc>argn) {
+		printf("Using specified time_t value: ");
+		t=strtoul(argv[argn],NULL,0);
+	} else {
+		printf("Using current time_t value: ");
+		t=time(NULL);
+	}
+	printf("%ld (%08lX)\n", t, t);
+	if((tm=localtime(&t))==NULL)
+		printf("localtime() failure\n");
+	else
+		printf("%-8s %.24s\n","local", asctime(tm));
+	if((tm=gmtime(&t))==NULL)
+		printf("gmtime() failure\n");
+	else
+		printf("%-8s %.24s\n","GMT", asctime(tm));
+
+	return(0);
+}