将json对象中的日期发送给restful ws

时间:2016-03-16 18:10:50

标签: java android json rest java-ee

我想在一个json对象中发送日期(和其他信息)从android应用程序到Restful WS

这就是我在我的Android应用程序中所做的。

        String date =  mFormat.format(Double.valueOf(mYear)) + "-" +  mFormat.format(Double.valueOf(mMonth+1)) + "-" +  mFormat.format(Double.valueOf(mDay)
                );
// so i will have somthing like date = "2016-03-30"

        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd", Locale.FRANCE);
        Date dateFin;
       dateFin= df.parse(date);
       jsonObject.put("datefin", dateFin);

在Web服务中我正在使用hibernate for ORM和MySql,它工作将对象插入到数据库中但日期字段始终为NULL

来自网络服务的快照

@POST
@Path("/add")
public Response addOffer(Offers offer) throws IOException {
    offerService.addOffer(offer);
    return Response.status(Status.CREATED).entity(offer).build();

}

这是方法addOffer。

public void addOffer(Offers offer) {

    // Offers f = new Offers("name","desc","category","market ",longitude,latitude,date);
    Session session = createSessionFactory().openSession();
    Transaction tx = null;
    try {

        tx = session.beginTransaction();
        session.save(offer);
        tx.commit();

    } catch (HibernateException e) {
        if (tx != null)
            tx.rollback();
        e.printStackTrace();
    } finally {
        session.close();
    }

}

所以任何想法为什么会发生这种情况以及如何解决它?

1 个答案:

答案 0 :(得分:1)

最后我发现如果日期不是这种格式

yyyy-MM-dd'T'HH:mm:ssZ

Restful WS拒绝将其作为日期使用,因此我将代码更改为

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.FRANCE);

当然我没有时间所以它将是00:00:00