3

ここで考えられるすべての答えを調べましたが、このことを理解するのに苦労しています。

文字列に Json の日付があります。時間を無駄にすることなく Java Date に変換したい。

また、Java Date から Json Date 文字列に変換したいと思います。

ここに私が持っているものがあります。

String jsonDateString = "/Date(1295157600000-0600)/";
4

1 に答える 1

2

あなたの時間には 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)/";
于 2012-06-02T19:56:34.990 に答える