Spécifiez toujours Locale pour SimpleDateFormat!
Si Locale n'est pas spécifié, SimpleDateFormat peut être converti en fonction des paramètres régionaux du terminal. S'il s'agit d'un pays du Moyen-Orient, il a peut-être adopté un système appelé "Nombres indiens" [^ 1]. Ensuite, «20181004083133657» sera converti en «٢٠١٨١٠٠٤٠٨٣١٣٣٦٥٧».
Spécifiez toujours Locale.US!
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS", Locale.US);
En passant, si vous définissez les paramètres régionaux sur new Locale (" ar "," EG "), ce phénomène peut être reproduit sur les appareils Android, mais pour une raison quelconque, il ne peut pas être reproduit sur macOS.
[^ 1]: [Nombres indiens-Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%83%89%E6%95%B0%E5 % AD% 97)
Recommended Posts