Будет ли эта функция часового пояса JavaScript лучше всего переводиться в двойной примитив Java? - PullRequest
0 голосов
/ 11 января 2012

Мне нужно передать переменную JavaScript tz_offset размера клиента в Java tzOffset на стороне сервера. tz_offset рассчитывается здесь:

time: function(){
  var d1 = new Date(), d2 = new Date();
  d1.setMonth(0); d1.setDate(1); d2.setMonth(6); d2.setDate(1);
  return({tz_offset: -(new Date().getTimezoneOffset()) / 60, observes_dst: (d1.getTimezoneOffset() !== d2.getTimezoneOffset()) });
}

Какой тип данных примитива Java является лучшим для представления смещения? Строка, двойной или int?

Мое лучшее предположение - double, но я беспокоюсь о выбросах, которые не могут быть представлены как double. На данный момент я оставляю это как строку, так как это кажется более безопасным - но не идеально.

1 Ответ

2 голосов
/ 11 января 2012

В Java большинство дат хранятся в виде длинных значений. Поскольку они представляют время с эпохи Unix, в миллисекундах вам не нужна точность с плавающей запятой (а-ля Double), но вам нужно больше битов, чем даст вам целое число.

Итак, я бы выбрал Long, если вы не беспокоитесь о нечисловых значениях, исходящих из вашего кода javascript, и вместо этого хотите использовать String и выполнить преобразование в числовое значение на стороне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...