我正在尝试将Json日期字符串转换为Java日期格式。但是,当涉及到“ return df.parse(tarih)”行时,它将给出错误。

JSON:

{"DateFrom":"\/Date(1323087840000+0200)\/"}


Java代码:

private Date JSONTarihConvert(String tarih) throws ParseException
{


    SimpleDateFormat df = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ssz" );


    if ( tarih.endsWith( "Z" ) ) {
        tarih = tarih.substring( 0, tarih.length() - 1) + "GMT-00:00";
    } else {
        int inset = 6;


        String s0 = tarih.substring( 6, tarih.length()-1 - inset );
        String s1 = tarih.substring( tarih.length()- inset,tarih.length()-2 );

        tarih = s0 + "GMT" + s1;
    }


        return df.parse( tarih );

}


当我调用此方法时,tarih参数为:/ Date(1323087840000 + 0200)/

最佳答案

因为您对Date对象感兴趣,所以我认为JSON是Unix时间戳。
因此,我建议您使用Date(long milliseconds)构造函数:)

private Date JSONTarihConvert(String tarih) throws ParseException{
    long timestamp = getTimeStampFromTarih(tarih);
    return new Date(timestamp);
}


其中getTimeStampFromTarih提取出现“ +”之前的毫秒数

08-17 14:31