我希望从我的桌子中选择接下来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";
如果相关,我也会在此操作中将日期格式化为当地时间:
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 :(得分:1)
documentation说明了日期/时间功能:
使用通用协调时间(UTC)。
直接支持的唯一其他时区是操作系统报告的时区,但在您的情况下,它是相同的。
要在时区之间进行转换,请使用修饰符添加/减去所需的小时数。