S format S refers to milliseconds. When you enable soft parsing, the last part is interpreted as 389362 milliseconds. When this is added to the date so far, the last 3 digits (in fact, the value of% 1000) become the actual milliseconds, and you end up with a date of about 389 seconds (~ 6 1/2 minutes) later than you expect (With strict In the analysis, the parser knows that 389362 milliseconds does not make sense, so it throws an error.)
The easiest way to get around this, if you can guarantee that the date will always look like this, is to chop off the last 3 digits. (This will give you a millisecond date in about half the time, but it's better than writing a date parser ...)
source share