小编Chu*_*rro的帖子

如何从Epoch时间戳中删除小时,分钟和秒

我需要编写一个接受a java.util.Date并从中删除小时,分钟和毫秒的函数使用JUST MATH(没有Date格式化程序,没有Calendar对象等):

private Date getJustDateFrom(Date d) {
    //remove hours, minutes, and seconds, then return the date
}
Run Code Online (Sandbox Code Playgroud)

此方法的目的是从毫秒值获取日期,没有时间.

这是我到目前为止所拥有的:

private Date getJustDateFrom(Date d) {
    long milliseconds = d.getTime();
    return new Date(milliseconds - (milliseconds%(1000*60*60)));
}
Run Code Online (Sandbox Code Playgroud)

问题是,这只会删除分钟和秒.我不知道如何删除时间.

如果我这样做milliseconds - (milliseconds%(1000*60*60*23)),那么它会回到前一天的23:00.

编辑:

这是另一种解决方案:

public static Date getJustDateFrom(Date d) {
    Calendar c = Calendar.getInstance();
    c.setTime(d);
    c.set(Calendar.HOUR_OF_DAY, 0);
    c.set(Calendar.MINUTE, 0);
    return c.getTime();
}
Run Code Online (Sandbox Code Playgroud)

此解决方案是否会受到我的应用程序的客户端/服务器端之间的时区差异的影响?

java date epoch milliseconds

4
推荐指数
1
解决办法
1万
查看次数

如何在elasticsearch中正确编写布尔值或逻辑?

我想用loId=6 AND (actionType = "SAVE_DATA" OR 抓取所有文件actionType = "OPEN_SCREEN").

我写错了这个逻辑吗?

为什么我的查询返回0结果?

注意:我接受查询或过滤器来解决此问题.

这些是一些示例文档:

 {
    "_index": "logs",
    "_type": "record",
    "_id": "eIIt3vtrSxmdOVGClQmN3w",
    "_score": 1,
    "_source": {
       "timestamp": 1373569919000,
       "uid": 6,
       "paId": 56298,
       "loId": 6,
       "prId": 2,
       "vId": 6577,
       "actionType": "SAVE_DATA"
    }
 },
 {
    "_index": "logs",
    "_type": "record",
    "_id": "yQGCia6qRYCImZLyH7DrEA",
    "_score": 1,
    "_source": {
       "timestamp": 1373570314000,
       "uid": 6,
       "paId": 56641,
       "loId": 6,
       "prId": 2,
       "vId": 6578,
       "actionType": "CHECK_IN"
    }
 },
 {
    "_index": "logs",
    "_type": "record",
    "_id": "2raajrNKTKeRKG88wiNPpw",
    "_score": 1, …
Run Code Online (Sandbox Code Playgroud)

boolean-logic elasticsearch booleanquery

3
推荐指数
1
解决办法
4843
查看次数