我在这里查看了所有可能的答案,但我很难弄清楚这件事。
我在字符串中有 Json 日期。我想在不浪费时间的情况下转换成 Java 日期。
我也想从 Java 日期转换为 Json 日期字符串。
这就是我所拥有的。
String jsonDateString = "/Date(1295157600000-0600)/";
您的时间有 2 个部分:以毫秒为单位的本地时间,以及以小时和分钟为单位的偏移量。您必须解析它们并“添加”它们以获得毫秒 UTC。
您可以使用此功能:
private static Pattern p = Pattern.compile("\\((\\d+)([+-]\\d{2})(\\d{2})\\)");
public static Date jd2d(String jsonDateString) {
Matcher m = p.matcher(jsonDateString);
if (m.find()) {
long millis = Long.parseLong(m.group(1));
long offsetHours = Long.parseLong(m.group(2));
long offsetMinutes = Long.parseLong(m.group(3));
if (offsetHours<0) offsetMinutes *= -1;
return new Date(
millis
+ offsetHours*60l*60l*1000l
+ offsetMinutes*60l*1000l
);
}
return null;
}
为了使“返回”一个 JSON 日期,我只需对 UTC 时间进行编码:
String jsonDate = "/Date("+date.getTime()+"+0000)/";