2017-02-15 20 views
0

Я использую Joda Time. Я хочу сравнить 2 даты/раз A и B, чтобы определить, превысил ли B A.Android Joda Time - Как загрузить UTC из файла

Проблема - Когда я лог-код А это не в UTC. Когда я регистрирую B, это в UTC. Поэтому сравнение не является реальным.

A - A UTC time loaded from a file 
B -The "System Time" in UTC 

Код:

A - DateTime csvTime = new DateTime(inArray[5]) ; //inArray[x] is loaded from a file and has this format: 2017-02-10T01:09:00Z 
B - new DateTime(DateTimeZone.UTC) 

Вопрос - Как загрузить inArray [5], так что действительно в UTC и сравнивает с B точно?

Заранее спасибо, и да, я просмотрел 100 сообщений об этом. Мне еще нужно найти сообщение, которое говорит мне синтаксис для A выше, как сохранить внешнюю дату формата ISO 8601 во внутреннем UTC. Я поиграл с TimeZone, установленным по умолчанию, чтобы заставить Joda/JVMP по умолчанию TZ, но это заставляет меня указывать TimeZone, который я не хочу делать.

ответ

1

Если вход уже в UTC (трейлинг «Z»), то я предлагаю вам разобрать это следующим образом:

DateTime dt = 
    ISODateTimeFormat.dateTimeNoMillis().withOffsetParsed().parseDateTime(
     "2017-02-10T01:09:00Z" 
    ); 
System.out.println(dt); // 2017-02-10T01:09:00.000Z 

В противном случае вы можете или обработка A-DateTime в формате UTC по withZone(DateTimeZone.UTC).

+0

спасибо. Это (dt) прекрасно работало. Я ценю это. Последний вопрос ... теперь, как мне отобразить dt в локальном времени/часовом поясе, установленном моим андроидом? –

+1

@FrankZappa Как насчет использования 'withZone (DateTimeZone.getDefault())'? Это будет работать до тех пор, пока пользователь не настроит часы или системную зону на своем устройстве. –

+0

спасибо. Я попробую это. У вас есть опыт сериализации/десериализации объектов с включенным полем даты Joda? Я использую gson для сериализации. Моя сериализация работала до тех пор, пока я не изменил дату java на DateTime Joda, а затем десериализацию разбили. Поэтому я добавил GoogleTimeTypeConverter Google для сериализации/десериализации. Он больше не падает при сериализации, но при десериализации кажется, что время изменилось. Есть предположения? –