2012-06-25 2 views
-1

Я просто хочу знать, можно ли рассчитать разницу между двумя датами, используя этот пример кода, но когда формат даты равен yyyy-MM-dd hh: mm: ss Если формат даты равен yyyy-MM-dd'T'HH: mm: ss.SSSZ, все работает нормально.Android, использующий время Joda для расчета разницы между датами

int days = Days.daysBetween(new DateTime(today), new DateTime(StartTime1)).getDays(); 

ответ

0

Он работает с «yyyy-MM-dd'T'HH:mm:ss.SSSZ», так как этот формат поддерживается в ISODateTimeFormat - который обрабатывает любые String параметров, передаваемых в DateTime(Object) конструктор.

Вы должны построить подходящий DateTimeFormatter для "yyyy-MM-dd hh:mm:ss" и использовать это вместо, например. как так:

DateTimeFormatterBuilder b = new DateTimeFormatterBuilder(); 
b.append(ISODateTimeFormat.yearMonthDay()); 
b.appendLiteral(" "); 
b.append(ISODateTimeFormat.hourMinuteSecond()); 
DateTimeFormatter fmt = b.toFormatter(); 
// fmt can now be used to parse "yyyy-MM-dd hh:mm:ss" patterns, like so: 
System.out.println(fmt.parseDateTime("2010-04-20 20:13:59")); 

Редактировать: Для того, чтобы преобразовать из «yyyy-MM-dd hh:mm:ss» в «yyyy-MM-dd'T'HH:mm:ss.SSSZ» вы можете просто сделать так:

String dateTime = ISODateTimeFormat.dateTime() 
     .print(fmt.parseDateTime("2010-04-20 20:13:59")); 

Не уверен, что хорошо, что будет у вас по сравнению с имея действительный DateTime (это то, что будет fmt.parseDateTime("2010-04-20 20:13:59")).

+0

Спасибо за ваш ответ Йенс. И если я хочу преобразовать формат «yyyy-MM-dd hh: mm: ss» в этот формат «yyyy-MM-dd'T'HH: mm: ss.SSSZ»? Я думаю, что в моем случае это будет самое лучшее. Мне нужно работать с разными часовыми поясами. – user1251064

+0

Йенс, спасибо !!! Я заработал. :) Спасибо за ваше время и терпение. – user1251064

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