diff --git a/modules/juce_core/time/juce_Time.cpp b/modules/juce_core/time/juce_Time.cpp index b7045e28d4..72645d5ed4 100644 --- a/modules/juce_core/time/juce_Time.cpp +++ b/modules/juce_core/time/juce_Time.cpp @@ -506,7 +506,19 @@ Time Time::fromISO8601 (StringRef iso) noexcept if (minutes < 0) return {}; - milliseconds = (int) (1000.0 * CharacterFunctions::readDoubleValue (t)); + auto seconds = parseFixedSizeIntAndSkip (t, 2, 0); + if (seconds < 0) + return {}; + + if (*t == '.') + { + ++t; + milliseconds = parseFixedSizeIntAndSkip (t, 3, 0); + if (milliseconds < 0) + return {}; + } + + milliseconds += 1000 * seconds; } const juce_wchar nextChar = t.getAndAdvance();