ArcGIS server rest中的日期类型,查询时间段内的数据

ArcGIS中的日期类型 - esrixa - 博客园https://www.cnblogs.com/esrichina/archive/2013/02/04/2891505.html

 rest服务接口中时间字段的查询方法为:Date(时间字段) = date '2012-01-10'

where处的查询语句:

经过测试,对于shapefile格式的数据发布的点图层,以下查询语句都可通过:

Date = date '01-10-2012 00:00:00'

Date = date '01-10-2012"

Date = date '01/10/2012"

Date = date '1/10/2012"

Date = date '1-10-2012"

Date = date '2012-1-10"

对于geodatabase中点图层发布的服务,以下查询语句可通过:

Date = date '01-10-2012 10:10:10'

Date = date '2012-1-05 8:20:20 pm'

Date = date '2012-1-05 20:20:20'

大整数问题:

但是我们发现查询结果中时间字段为一个大整数(Format选择了HTML),网上有服务的查询结果是时间格式(目前不清楚如何发布数据以便在Rest页面中能正确显示为时间而非大整数)。不过我们在代码中调用时通常使用json格式,它返回的都是一个大整数。这个大整数的含义是:自 1970 年 1 月 1 日起已经过的毫秒数(如果晚于1970年1月1日,则为正数,否则为负数)。下文会对大整数的处理进行探讨。

Flex/Java中调用 

参见《利用ArcGIS Server REST API实现对Feature的编辑操作》和《Java中调用ArcGIS Server REST API》两篇文章,完成利用ArcGIS REST API获取日期信息。完成对结果的解析后,会得到一个大整数,这里以西安为例,得到的数值是1326190210000。

flex中

Flex中可利用构造函数完成从大整数到日期类型的转换:

var date:Date = new Date(1326190210000). 

日期转换为大整数:

第一种:var date1:Number = Date.parse("2012/01/10 18:10:10 GMT+0800");//注意时区

第二种:var date2:Number = Date.UTC(2012,0,10,10,10,10,0);//月份范围是0-11. 

利用Rest API实现新增功能时,如需构造时间字段,可将日期类型转成大整数,完成日期的添加。

部分服务也可利用这种形式("Date" : "09\/19\/2009"),但有些不行,赞不清楚原因。 

java中 

大整数转换为日期:

String str = "1326190210000";         
Long lng = Long.parseLong(str);
Date date = new Date(lng);

日期转换为大整数: 

第一种:long lng2 = Date.UTC(2012-1900,0,10,10,10,10);//年数需要减去1900 

第二种:Calendar calendar = Calendar.getInstance();

calendar.set(2012,0,10, 18, 10, 10);
calendar.set(Calendar.MILLISECOND, 0);//设置下毫秒为0,否则得到的结果后三位不确定
long lng1 =calendar.getTimeInMillis(); 

第三种:Date.parse()和DateFormat类也可以。 

jquery中要将时间戳转为日期:

new Date(-2209161600000).toLocaleDateString()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值