Patch from David Daney:

It seems that date  -s MMDDHHMMYYYY.ss

will ignore the .ss part.  This patch tries to fix the problem.

David Daney.
diff --git a/coreutils/date.c b/coreutils/date.c
index 26251c3..3608df6 100644
--- a/coreutils/date.c
+++ b/coreutils/date.c
@@ -47,6 +47,7 @@
 static struct tm *date_conv_time(struct tm *tm_time, const char *t_string)
 {
 	int nr;
+	char *cp;
 
 	nr = sscanf(t_string, "%2d%2d%2d%2d%d", &(tm_time->tm_mon),
 				&(tm_time->tm_mday), &(tm_time->tm_hour), &(tm_time->tm_min),
@@ -56,6 +57,14 @@
 		bb_error_msg_and_die(bb_msg_invalid_date, t_string);
 	}
 
+	cp = strchr(t_string, '.');
+	if (cp) {
+		nr = sscanf(cp + 1, "%2d", &(tm_time->tm_sec));
+		if (nr != 1) {
+			bb_error_msg_and_die(bb_msg_invalid_date, t_string);
+		}
+	}
+
 	/* correct for century  - minor Y2K problem here? */
 	if (tm_time->tm_year >= 1900) {
 		tm_time->tm_year -= 1900;