我有一个带有一个日期字段的json请求,如下所示:
"PolicyEffectiveDate": "\/Date(1389715867000)/\"
我想将它解析为java.util.Date
类型的java对象
我在javascript中得到了如何做到这一点
javascript日期 here和离子 here但是
我需要在java中这样做。请帮忙。
答案 0 :(得分:1)
String policyEffective = ...
long time = Long.parseLong(policyEffective.replaceFirst("^.*Date\\((\\d+)\\).*$", "$1"));
Date date = new Date(time);
自1970年左右以来,这个数字是一个很长的ms,并且就这样进入Date构造函数。
结果:
Tue Jan 14 17:11:07 CET 2014
因为你有非法的论点;也许你拿了一个int或其他东西。
答案 1 :(得分:1)
long time = Long.parseLong(policyEffective.subString(
policyEffective.indexOf("(")+1,policyEffective.lastIndexOf(")"))));
Date date = new Date(time);
这种方式会将字符串从"("到")"的索引中修剪掉。 所以它只会提取数字
答案 2 :(得分:1)
import java.util.Date;
public class JsonDate {
public static void main(String[] args) {
String jsonDate = "\\" + "/Date(1389715867000)" + "/" + "\\";
jsonDateToUtilDateConverter(jsonDate);
System.out.println(jsonDate);
}
private static void jsonDateToUtilDateConverter(String jsonDate) {
String epochDate = jsonDate.replaceAll("[^0-9]", "");
Date date = new Date(Long.parseLong(epochDate));
System.out.println("date: "+date);
System.out.println(epochDate);
}
}
我得到的输出是:
日期:Tue Jan 14 21:41:07 IST 2014
1389715867000个
/日期(1389715867000)/ \