将java的Date转换成Solr的时间格式

DateField 表示一个精确到毫秒的时间,值的格式是:
YYYY-MM-DDThh:mm:ssZ

其中,

YYYY 表示年,MM 表示月,DD 表示日,hh 表示24小时制的小时,mm 表示分钟,ss 表示秒。

值的注意的是上面的那个时间格式里没有时区;带时区的时间格式可以通过格林尼治时间表示。这里是一个示例的值:
1972-05-20T17:33:18Z
另一个带毫秒的例子:
1972-05-20T17:33:18.772Z
另外,DataField也支持日期计算。这个可以方便创建相对于当前时间的时间点。可以用这个表达从现在往后两个月:
+2MONTHS
这个表示一天以前:
-1DAY
使用/可以表示当前的某部分时间,这个表示当前的小时:
/HOUR
当然也能组合表达式,以下表示的是六个月零三天以后的日(一个月的第几天):

+6MONTHS+3DAYS/DAY

Java Date转成solr时间的代码如下:  

       /**
	 * 将java Date格式转成Solr支持的UTC时间
	 * @param date
	 * @return
	 */
	public static String getSolrDate(Date date) {
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
		SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm:ss");
		sdf2.setTimeZone(TimeZone.getTimeZone("UTC"));
		String result = sdf1.format(date) + "T" + sdf2.format(date) + "Z";
		return result;
	}


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值