Путаница связана с тем, что точка - это просто разделитель токена, а не числовой десятичный разделитель.Замените символ, скажем, :
, и разница станет более ясной.
То есть в регионах, где .
- десятичный разделитель, численно 1.5 = 1.50 = 1.500
.
Однако,когда мы анализируем строки "1.5"
, "1.50"
, "1.500"
, используя .
в качестве разделителя токенов, мы получаем (1, 5)
, (1, 50)
, (1, 500)
..
не имеет здесь особого математического значения, и он также может быть, скажем, одним пробелом.
Этот простой фрагмент также демонстрирует точку:
SimpleDateFormat parser = new SimpleDateFormat("Z s#S");
System.out.println(parser.parse("GMT 1#002").getTime()); // 1002
System.out.println(parser.parse("GMT 1#02").getTime()); // 1002
System.out.println(parser.parse("GMT 1#2").getTime()); // 1002
System.out.println(parser.parse("GMT 1#20").getTime()); // 1020
System.out.println(parser.parse("GMT 1#200").getTime()); // 1200