2016-01-30 4 views
1

у меня есть проблемы с календарным getTimeInMillis() функция, возвращая недействительный день первого я использую простое форматирование даты, чтобы отформатировать дату строки «05/05/2016»Календарь getTimeInMillis() возвращает неправильный день

SimpleDateFormat mDateFormatter = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH); 

тогда я поставил результат разобранной дату в календарном объект

Calendar mCalendar = Calendar.getInstance(TimeZone.getTimeZone("UTC")); 
mCalendar.setTime(mDateFormatter.parse("05/05/2016")); 

и функции GetTime() возвращаются чты 5 мая 00:00:00 GMT + 03: 00 +2016 и функция getTimeInMillis () возвращается 1462395600000, что равно Ср май 04 2016, так что между выходом двух функций существует разница в одном дне, так что же проблема?

ответ

0

Я побежал этот код:

SimpleDateFormat mDateFormatter = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH); 

    Calendar mCalendar = Calendar.getInstance(TimeZone.getTimeZone("UTC")); 
    mCalendar.setTime(mDateFormatter.parse("05/05/2016")); 

    System.out.println("getTime: " + mCalendar.getTime()); 
    System.out.println("millis : " + mCalendar.getTimeInMillis()); 

    Date date = new Date(mCalendar.getTimeInMillis()); 
    System.out.println("Date from millis: " + date); 

И получил этот результат:

getTime: Thu May 05 00:00:00 GMT 2016 
millis : 1462406400000 
Date from millis: Thu May 05 00:00:00 GMT 2016 

Так что я не вижу проблемы, вы можете описать. Я использовал http://ideone.com/ Я что-то упустил? Вы что-нибудь сделали с Calendar между getTime() и getTimeInMillis()?

+0

hi @nasch я уверен ничего в середине :) – user101530

+0

Я не знаю, как это объяснить, если только что-то не работает по-разному на Android. Это было бы странно, но я не пробовал. Правильно ли работает ваш код на не-андроидной java-платформе? – nasch

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