Я столкнулся с действительно странной проблемой, которую я раньше не видел. У меня есть дата в миллисекундах и вы хотите отобразить ее как читаемую дату. Это мой код:SimpleDateFormat возвращает недопустимую дату
if (validUntil == 0) {
return activity.getResources().getString(R.string.forever);
} else {
Date startDate = new Date(validFrom);
Date endDate = new Date(validUntil);
if (startDate.compareTo(endDate) < 0) {
String date = sdf.format(startDate) + " - " + sdf.format(endDate);
return date;
} else if (startDate.compareTo(endDate) == 0) {
return activity.getResources().getString(R.string.forever);
}
}
Как вы можете видеть, я просто хочу создать строку, которая показывает временной интервал. Когда я отлаживаю свой код, объекты даты содержат правильные значения, а sdf.format(...)
дает мне недопустимую дату.
Пример:
startdate
в миллисекунды:1375017555000
startdate
объект содержит:Sun Jul 28 15:19:15 CEST 2013
sdf.format(startDate)
возвращается:28.19.2013
я получаю результат для предложения этого типа даты окончания.
Что я делаю неправильно?
разместить шаблон для SDF. вероятно, вы помещаете mm вместо MM – Blackbelt
Угадайте: вы используете 'm' вместо' M' в течение нескольких месяцев. – mthmulders
Можете ли вы опубликовать [SSCCE] (http://sscce.org/)? Это поможет каждому лучше понять ваш код и быстрее ответить. В этом конкретном случае вы можете отредактировать свой вопрос и показать, как вы объявили 'sdf'. – araknoid