это особенность Java
def date = Date.parse("yyyy-MM-dd HH:mm:ss.SSS","2019-03-18 16:20:05.6401383")
возвращает
Mon Mar 18 18:06:46 EET 2019
проблема в том, что Java обрабатывает только миллисекунды SSS
(3 цифры после секунд)
но вы предоставляете 7 цифр для миллисекунд 6401383
в качестве обходного пути удалите лишние цифры с помощью регулярного выражения:
def sdate1 = "2019-03-18 16:20:05.6401383"
sdate1 = sdate1.replaceAll( /\d{3}(\d*)$/, '$1') //keep only 3 digits at the end
def date = Date.parse("yyyy-MM-dd HH:mm:ss.SSS",sdate1)
def sdate2 = date.format("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")