将日历对象转换为 android 中的 json 对象

Convert a calendar object to json object in android

Calendar time;
time=mEvent.getStartTime();                           
mSocket.emit("new message", time);

我在本地服务器上得到了这个输出

java.util.GregorianCalendar[time=1451079047871,
    areFieldsSet=true,
    lenient=true,
    zone=Asia/Kolkata,
    firstDayOfWeek=2,
    minimalDaysInFirstWeek=4,
    ERA=1,YEAR=2015,
    MONTH=11,
    WEEK_OF_YEAR=52,
    WEEK_OF_MONTH=4,
    DAY_OF_MONTH=26,
    DAY_OF_YEAR=360,
    DAY_OF_WEEK=7,
    DAY_OF_WEEK_IN_MONTH=4,
    AM_PM=0,HOUR=3,
    HOUR_OF_DAY=3,
    MINUTE=0,
    SECOND=47,
    MILLISECOND=871,
    ZONE_OFFSET=19800000,
    DST_OFFSET=0]

我想将其转换为 JSONObject,方法是获取上述字符串或使用时间作为对象。

使用 Gson 将 GregorianCalendar 转换为 JSON string

Gson gson = new GsonBuilder().create();
GregorianCalendar cal = new GregorianCalendar();
String json = gson.toJson(cal);
JSONObject cal_json=new JSONObject(json);

如果您要将日期传递给服务器,请尝试将 TimeInMillis 传递给服务器。 在服务器端只需获取 TimeInMillis,然后使用 Date 函数即可获取所需的 Date 对象字段。

代码:

Calendar time;
time=mEvent.getStartTime();    
long start_time=time.getTimeInMillis();

TimeinMillis 是解析服务器和 Android 应用程序之间时间字段的最佳方式。 您需要做的就是在两侧使用默认的日历和日期函数方法获取所需的字段。

要在 W3C XML 架构中创建日期,这是 JSON 日期的良好格式:

Calendar myCalendarObj = Calendar.getInstance(); // Snap a moment in time

JSONObject jObj = new JSONObject(); // Create a JSON object (org.json.JSONObject)

SimpleDateFormat jsonDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ"); // from java.text.SimpleDateFormat
String senddate = jsonDateFormat.format(myCalendarObj.getTime());
jObj.put("a_date_field", senddate);