Geben Sie immer das Gebietsschema für SimpleDateFormat an!
Wenn das Gebietsschema nicht angegeben ist, kann SimpleDateFormat abhängig vom Gebietsschema des Terminals konvertiert werden. Wenn es sich um ein Land im Nahen Osten handelt, hat es möglicherweise ein System namens "Indian Numbers" eingeführt [^ 1]. Dann wird "20181004083133657" in "٢٠١٨١٠٠٤٠٨٣١٣٣٦٥٧" konvertiert.
Geben Sie immer "Locale.US" an!
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS", Locale.US);
Übrigens, wenn Sie das Gebietsschema auf "neues Gebietsschema" ("ar", "EG") "setzen, kann dieses Phänomen auf Android-Geräten reproduziert werden, aber aus irgendeinem Grund konnte es unter macOS nicht reproduziert werden.
[^ 1]: [Indian Numbers-Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%83%89%E6%95%B0%E5 % AD% 97)
Recommended Posts