0

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)/

4

6 に答える 6

5

オブジェクトに興味がDateあり、JSON が UNIX タイムスタンプであることがわかりました。したがって、 Date(long milliseconds)
コンストラクター をお勧めします:)

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

getTimeStampFromTarih「+」が出現する前のミリ秒を抽出する場所

于 2012-08-16T09:31:37.883 に答える
3

これは確実に効きます

String date = "/Date(1376841597000)/";
Calendar calendar = Calendar.getInstance();
String datereip = date.replace("/Date(", "").replace(")/", "");
Long timeInMillis = Long.valueOf(datereip);
calendar.setTimeInMillis(timeInMillis);
System.out.println(calendar.getTime().toString("dd-MMM-yyyy h:mm tt"));//It Will Be in format 29-OCT-2014 2:26 PM
于 2014-10-29T09:14:18.573 に答える
2

キャストの日付を入力する必要があります:

String rawdate = "/Date(1995769286000)/";
Calendar calendarins = Calendar.getInstance();
String datereip = rawdate.replace("/Date(", "").replace(")/", "");
Long timeInMillis = Long.valueOf(datereip);
calendar.setTimeInMillis(timeInMillis);
System.out.println(calendar.getTime().toString("dd-MMM-yyyy h:mm tt"));
于 2021-04-21T07:03:10.653 に答える
1

そうしない理由がない限り、パーサーを使用してオブジェクトをシリアライズおよびデシリアライズする必要があります。Jacksonパーサーのように。

于 2012-08-16T09:27:59.070 に答える