比较两个时间戳天数

Compare two timestamp days

本文关键字:时间戳 两个 比较      更新时间:2023-09-26

在我的应用程序中,我设计了一个Spring调度程序,它应该选择具有"abcDate"字段并以明天的时间戳为值的记录。

我在我的java应用程序中计算了时间戳,

Calendar cal = Calendar.getInstance();
            cal.add(Calendar.DAY_OF_YEAR, 1);
            long abcTimeStamp = DateUtils.convertDateTimeToUTCzone(cal.getTimeInMillis()); 

其值为:1387348986,即)2013年12月18日上午6:43:06 UTC

在DB中,我有一条记录,时间戳为1387365854,即2013年12月18日上午11:24:14 UTC。

我使用的是couch DB map reduce视图,并将时间戳值作为视图的关键字。

但由于两个时间戳的时间不同,我无法获取此记录。有没有办法只匹配时间戳中的日期并过滤视图本身中的记录?

CouchDB的startkeyendkey概念在这里非常有用。

听起来你已经有了一个视图,但为了完整起见,我们假设它看起来是这样的:

{
   "_id": "_design/mydesign",
   "_rev": "1-088646f81629ce559b6d9772c6116113",
   "views": {
       "by_timestamp": {
           "map": "function(doc) { emit(doc.timestamp, doc); }"
       }
   }
}

您有一个名为"时间戳"的数据库在本地运行,其中包含一些文档,如所示

$ curl localhost:5984/timestamps/_design/mydesign/_view/by_timestamp

要获取一系列文档,请添加startkeyendkey查询参数:

$ curl localhost:5984/timestamps/_design/mydesign/_view/by_timestamp'?startkey'=1387348986'&endkey'=1387365854

现在要获得这些参数,您需要明天开始和明天结束的时间戳。这个答案涵盖了java.util.Calendar API和Joda-Time。

要了解更多关于寻找更多的信息,请查看CouchDB的精彩新文档。

Check Moment.js。它是一个用于解析、验证、操作和格式化日期的javascript日期库。

您可以使用Joda time API。它有更多的功能。

从日历中,可以使用getTime()方法获取Date。此日期可用于上述API中的对象。或者使用毫秒:

...
DateTime dt = new DateTime(millis);
int day = dt.getDayOfYear();
...