diff --git a/date.c b/date.c
index ae9282f..467e1e4 100644
--- a/date.c
+++ b/date.c
@@ -48,18 +48,39 @@
 #endif
 }
 
+static void settime_fmt(char *s, const char *fmt) {
+     struct tm tm;
+     struct timeval tv;
+
+     memset(&tm, 0, sizeof(tm));
+     if (strptime(s, fmt, &tm) == NULL) {
+       fprintf(stderr, "Unable to parse date '%s' as format '%s'\n", s, fmt);
+       exit(1);
+     }
+
+     tv.tv_sec = mktime(&tm);
+     tv.tv_usec = 0;
+     if (settimeofday(&tv, NULL)) {
+       char buf[80];
+       snprintf(buf, sizeof(buf), "settimeofday(%ld)", tv.tv_sec);
+       perror(buf);
+       exit(1);
+     }
+}
+
 int date_main(int argc, char *argv[])
 {
-	int c;
+    int c;
     int res;
-	struct tm tm;
-	time_t t;
-	struct timeval tv;
+    struct tm tm;
+    time_t t;
+    struct timeval tv;
     struct timespec ts;
-	char strbuf[260];
+    char strbuf[260];
     int fd;
 
     int useutc = 0;
+    void *settime_arg = NULL;
 
     tzset();
 
@@ -72,7 +93,7 @@
             useutc = 1;
             break;
         case 's':
-            settime(optarg);
+            settime_arg = optarg;
             break;
         case '?':
             fprintf(stderr, "%s: invalid option -%c\n",
@@ -86,7 +107,13 @@
     }
 
     int hasfmt = argc == optind + 1 && argv[optind][0] == '+';
-    if(optind == argc || hasfmt) {
+    if (settime_arg) {
+        if (hasfmt) {
+          settime_fmt(settime_arg, argv[optind] + 1);
+        } else{
+          settime(settime_arg);
+        }
+    } else if(optind == argc || hasfmt) {
         char buf[2000];
         time(&t);
         if (useutc) {
