1

Javaの日時オブジェクトを次の形式のjson文字列に変換したい:

{"date":"/Date(18000000+0000)/"}

私はこれが好きでしたが、私が望むフォーマットを私に与えませんでした:

JSONObject object = new JSONObject();
object.put("date",new Date());

および object.toString() の結果

{"date":"Fri May 04 11:22:32 GMT+07:00 2012"}

文字列 "Fri May 04 11:22:32 GMT+07:00 2012" を "/Date(18000000+0000)/" に変換します (18000000+0000 は単なる例です)。

ご協力いただきありがとうございます。

4

8 に答える 8

3

良い方法ではありませんが、これが私の解決策ですが、最終的に実行可能な解決策を見つけました。

SimpleDateFormat format = new SimpleDateFormat("Z");
Date date = new Date();
JSONObject object = new JSONObject();
object.put("date", "/Date(" + String.valueOf(date.getTime()) + format.format(date) + ")/");
于 2012-05-04T07:27:29.520 に答える
1
 public static String convertToJsonDateTime(String javaDate)

  {
     SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
        Date currentDate = null;
        try {
            currentDate = dateFormat.parse(javaDate);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        long time =currentDate.getTime();
    return  "\\/Date("+time+"+0000)\\/";
}
于 2015-03-20T12:44:15.593 に答える
0

必要な日付形式は/Date(<epoch time><Time Zone>)/. (このリンク
にあります) を使用してJavaでエポック時間を取得でき、日付と時刻のパターンを使用して取得できるタイムゾーンを. 次に、すべての文字列を 1 つに結合し、Json オブジェクトに格納します。 他の可能性としては、iOS デバイスから取得している時間がhereから取得したパターンである可能性があります。さまざまな時点で iOS デバイスの出力を確認し、正しいパターンを特定します。long epoch = System.currentTimeMillis()/1000;Z
yyMMddHHmmssZ

于 2012-05-04T06:12:40.397 に答える
0

このような形式の場合 - >「DDmmYYYY + HHMM」

  1. DD -> 日 (2 桁)
  2. mm -> 月 (2 桁)
  3. YYYY -> 年 (4 桁)
  4. HH -> 時間
  5. MM -> 分

このようにできるよりも:

SimpleDateFormat format = new SimpleDateFormat("DDmmYYYY+HHMM");
JSONObject object = new JSONObject();
object.put("date", "/Date(" + format.format(new Date()) + ")/");
于 2012-05-04T06:14:29.013 に答える
0

json.orgの説明からJSONObject:

値は、Boolean、JSONArray、JSONObject、Number、および String、または JSONObject.NULL オブジェクトのいずれかのタイプにすることができます。

このライブラリは、日付から JSON 表現への「複雑な」マッピングをサポートしていません。自分でやる必要があります。SimpleDateFormat役立つようなものが見つかるかもしれません。

于 2012-05-04T04:39:01.850 に答える
0

それがフォーマットの表現だと思いISO international date-timeます。

YYYYMMDD+HHMM

これで、その文字列を作成できるようになると思います

のようかもしれません、

Date d=new Date(); String tmp=""; tmp="/Date("d.getYear()+""+d.getMonth()+""+d.getDate()+"+"+d.getHours()+""+d.getMinutes()+")/";

于 2012-05-04T06:41:09.063 に答える
0

前の回答の 1 つをアップグレードします。

 public static String convertToJsonDateTime(Date dateToConvert) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");
        long time = dateToConvert.getTime();
        return "/Date(" + time + "+0000)/";
    }
于 2016-03-24T13:21:21.543 に答える