Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 积雨性日期格式_Date_Esper_Cumulocity - Fatal编程技术网

Date 积雨性日期格式

Date 积雨性日期格式,date,esper,cumulocity,Date,Esper,Cumulocity,我想知道为什么某些字段的日期格式不同。我的规则是这样宣布的: @Name("measurement_occupation") context ParkingSpotOccupation insert into CreateMeasurement select e.source as source, "ParkingSpotOccupation" as type, min(e.time) as time, { "startDate", min(e.time), "e

我想知道为什么某些字段的日期格式不同。我的规则是这样宣布的:

@Name("measurement_occupation")
context ParkingSpotOccupation
insert into CreateMeasurement
select
  e.source as source,
  "ParkingSpotOccupation" as type,
  min(e.time) as time,
  {
    "startDate", min(e.time),
    "endDate",  max(e.time),
    "duration", dateDifferenceInSec(max(e.time), min(e.time))
  } as fragments
from
  SmartParkingEvent e
output
  last when terminated;
使用API测量得出的结果如下:

{
  "time": "2016-05-30T06:00:00.000+02:00",
  "id": "33200",
  "self": "https://management.post-iot.lu/measurement/measurements/33200",
  "source": {
    "id": "26932",
    "self": "https://management.post-iot.lu/inventory/managedObjects/26932"
  },
  "type": "ParkingSpotOccupation",
  "startDate": {
    "time": 1464580800000,
    "minutes": 0,
    "seconds": 0,
    "hours": 6,
    "month": 4,
    "timezoneOffset": -120,
    "year": 116,
    "day": 1,
    "date": 30
  },
  "duration": 600,
  "endDate": {
    "time": 1464581400000,
    "minutes": 10,
    "seconds": 0,
    "hours": 6,
    "month": 4,
    "timezoneOffset": -120,
    "year": 116,
    "day": 1,
    "date": 30
  }
}
为什么ate时间和startDate/endDate呈现不同?更奇怪的是,当显示my event processig rule的输出时,其格式如下:

{ "time": { "date": 30, "day": 1, "hours": 6, "minutes": 0, "month": 4, "seconds": 0, "time": 1464580800000, "timezoneOffset": -120, "year": 116 }, "source": "26932", "fragments": [ "startDate", { "date": 30, "day": 1, "hours": 6, "minutes": 0, "month": 4, "seconds": 0, "time": 1464580800000, "timezoneOffset": -120, "year": 116 }, "endDate", { "date": 30, "day": 1, "hours": 6, "minutes": 10, "month": 4, "seconds": 0, "time": 1464581400000, "timezoneOffset": -120, "year": 116 }, "duration", 600 ], "type": "ParkingSpotOccupation" }

所以每个日期看起来都是一样的,但当我使用API访问度量值时就不同了。我希望所有日期都以这种格式存储:“2016-05-30T06:00:00.000+02:00”。我还尝试使用cast(min(e.time)、Date),但出现了一个错误(无法加载cast函数中按名称“Date”列出的类)。我尝试了toDate()函数,但它没有改变任何东西。

问题是,在Esper中,所有日期实际上都是Java中的Date类,在解析它时,会得到一个不太好的结构

最简单的方法是自己将其格式化为ISO字符串。 您可以使用Java SimpleDataFormat。在模块中声明它

create constant variable SimpleDateFormat ISO_FORMATTER = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
然后就用它

ISO_FORMATTER.format(min(e.time))
ISO_FORMATTER.format(max(e.time))

它返回日期的ISO字符串。问题是,在Esper中,所有日期实际上都是Java中的日期类,在解析它时,会得到一个不太好的结构

最简单的方法是自己将其格式化为ISO字符串。 您可以使用Java SimpleDataFormat。在模块中声明它

create constant variable SimpleDateFormat ISO_FORMATTER = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
然后就用它

ISO_FORMATTER.format(min(e.time))
ISO_FORMATTER.format(max(e.time))
它返回日期的ISO字符串