2016-08-09 2 views
1

Я стараюсь обмениваться информацией между моим программным обеспечением java и андроидным инструментом. Я положил System.currentTimeMillis() из своего андроида в базу данных Derby. Я на UTC -4.System.currentTimeMillis exchange Java-программное обеспечение и Android

На программное обеспечение:
Когда это Aug 09 2016 08:32:32
долго: 1470745952393
Это означает, что Aug 09 2016 12:32:32 UTC

На Android
Когда шоу Aug 09 2016 08:44:37 это спасло 1470732277580
, что означает Aug 09 2016 04:44:37 для моего часового пояса ...

Да Нет у кого есть объяснение?

+1

8 + 4 = 12, 8-4 = 4 => Вы находитесь на UTC-4, Android-инструмент работает с UTC. – Cristina

ответ

1

Ваш языковой стандарт вашего программного обеспечения отличается от вашего устройства. Проверьте на обоих устройствах:

java.util.TimeZone.getDefault()

и посмотреть, что он возвращается.

+0

На андроид: id = GMT, offset = 0, dstSavings = 3600000, useDaylight = false ... и программное обеспечение: d = "America/New_York", offset = -18000000, –

+1

Да. Итак, у вас это есть. Два часовых пояса различны, поэтому длинный интерпретируется по-разному. Возможным решением является формат даты: 'DateFormat df = DateFormat.getDateInstance (DateFormat.SHORT, YOUR_LOCALE); Строка formattedDate = df.format (yourDate); ' –

Смежные вопросы