Проблема с отметкой времени, показывающая 1970 вместо 1988 - PullRequest
1 голос
/ 31 декабря 2010

Я пытаюсь установить значение по умолчанию в DateField, используя следующую инструкцию

DateField dateField = new DateField («День рождения:», 567993600, DateField.DATE | DateField.FIELD_LEFT);

но когда я запускаю свое приложение, оно показывает мне 7 января 1970 года вместо 1 января 1988 года.

Я проверил отметку времени на http://www.onlineconversion.com/unix_time.htm

и показывает правильную ожидаемую дату: «Пт, 01 января 1988 00:00:00 по Гринвичу»

Я использую симулятор 8900, и мое время даты правильно отображает текущую дату 31 декабря 2010 года в виде даты в папке параметров.

С уважением,

-gmuhammad

Ответы [ 2 ]

4 голосов
/ 31 декабря 2010

В поле даты используются миллисекунды . Вам нужно умножить время на 1000.

Редактировать : убедитесь, что вы используете длинные значения (то есть 5679936001000l или 567993600l * 1000). При использовании целых чисел умножение переполняется.

0 голосов
/ 31 декабря 2010

работает следующий код:

DateField dateField = new DateField («День рождения:», 567993600000L, DateField.DATE | DateField.FIELD_LEFT);

Мартин, вы ответили правильно, но после умножения на 1000 произошло переполнение, компилятор использовал целочисленное значение для литералов. Поэтому я добавляю три нуля в конце вместо умножения на 1000.

Спасибо, Мартин.

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