我需要获取当前日期,例如“yyyy-mm-dd”,而不是小时和分钟。 而且我需要当天24小时,所以进一步这一天。
我需要在我的fql查询中这是我的查询:
String FQL + = .... AND start_time<'" + startTime + "' AND start_time>'" + endTime + "' LIMIT 25"
我正在使用此代码执行此操作,但它不起作用:
Date myDate = new Date();
Date endTime = new Date(myDate.getTime() + 86400000L);
Date startTime = new Date(myDate.getTime());
答案 0 :(得分:1)
当startTime
&lt; endTime
,因为
Date startTime = new Date(myDate.getTime());
Date endTime = new Date(myDate.getTime() + 86400000L);
如何表达
X<'" + startTime + "' AND X>'" + endTime + "'
永远是真的吗?
X < startTime X > endTime
---------------------------+---------------------+--------------------------
startTime endTime
我用X替换它以更好地区分start_time和startTime
答案 1 :(得分:0)
使用Calendar个实例。
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sf = new SimpleDateFormat("yyy-MM-dd");
String startTime = sf.format(calendar.getTime());
calendar.add(Calendar.DAY_OF_MONTH, 1);
String endTime = sf.format(calendar.getTime());
正如Rene正确指出的那样,start_time
需要比startTime
(start_time > startTime
)更大,而且比endTime
(start_time < endTime
)更小。
我还要指出joda-time,这使得日期的处理更加舒适。但为了您的目的,上面的代码就可以了。
答案 2 :(得分:0)
使用java.util.Calendar
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, 1); // adds 1 day
calendar.getTime(); // returns the Date
祝你好运!
答案 3 :(得分:0)
编辑: 我读到它好像问题只是关于格式,但RenéLink指出的是正确的:你的查询永远不会产生任何结果。
使用java.util.Date,它类似于:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
long now = System.currentTimeMillis();
Date today = new Date(now);
Date tomorrow = new Date(now + 86400000); // 24 * 60 * 60 * 1000
System.out.println("Today: " + dateFormat.format(today) +
"\nTomorrow: " + dateFormat.format(tomorrow));
使用java.sql.Date它会变得更简单:
long now = System.currentTimeMillis();
Date today = new Date(now);
Date tomorrow = new Date(now + 86400000);
System.out.println("Today: " + today + "\nTomorrow: " + tomorrow);
也许您可能希望使用java.util.Calendar.getInstance().getTime()
代替System.currentTimeMillis()
来创建第一个日期。然后,您只需要以毫秒为单位获得第一个日期的时间,将86400000添加到第二个日期。