2015-03-07 8 views
0

я ищу, чтобы выбрать игры для следующих 24 часов от моего стола:SQLITE следующие 24 часа данные

String sql = "SELECT * FROM teamstable 
      WHERE ((teamdate >= datetime ('now')) 
      AND (teamdate < datetime('now','+24 hours'))) 
      ORDER BY teamdate"; 

Cursor cursor = db.rawQuery(sql, null); 

Но результат странно, потому что у меня есть только завтрашние игры:

String teamDate48 = "2015-03-08 21:30"; 
. 
. 
String teamDate54 = "2015-03-08 13:00"; 

Я должен также иметь сегодняшние игры:

String teamDate41 = "2015-03-07 20:30"; 
. 
. 
String teamDate47 = "2015-03-07 19:00"; 

Если это уместно, я форматирование даты в местное время в этой операции, как ш ELL:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 

Date datex = null; 
try 
{ 
    sdf.setTimeZone(TimeZone.getTimeZone("America/New_York")); 
    datex = sdf.parse(tdate111); 
    System.out.println(datex); 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
    sdf.setTimeZone(TimeZone.getDefault()); 

Моя догадка: проблема вызвана разницей в часовом поясе между моим телефоном (GMT) и сохраненными даты (America/New_York). Может ли это вызвать это?

+0

Прочитайте [документацию] (http://www.sqlite.org/lang_datefunc.html). –

+0

@CL. не могли бы вы уточнить, пожалуйста? должен ли я использовать 'strftime' вместо datetime, или мне нужно добавить «: SS» к моим строкам –

+0

@ nate-barbettini Спасибо за большие улучшения, мне нужно узнать больше по-английски .. ха-ха –

ответ

1

documentation говорит о функциях даты/времени: используется

Универсальное координированное время (UTC).

Единственный часовой пояс, поддерживаемый непосредственно, - это тот, о котором сообщает ОС, но в вашем случае это то же самое.

Чтобы преобразовать между часовыми поясами, используйте модификатор, чтобы добавить/вычесть необходимое количество часов.

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