0

I am retrieving data from oracle Sql Developer database using hibernate and using Spring MVC as rest api.I have 2 date fields in the database.While retrieving data it is in JSON format.The date output is not in DD/MM/YYYY it is in Epoch.Here is my code:

@RequestMapping(value="{userid}", method = RequestMethod.GET)
public @ResponseBody List<IterationInfo> getIterationInfoInJSON(@PathVariable int userid) 
{
    Configuration con = new Configuration();
    con.configure("hibernate.cfg.xml");
    SessionFactory SF = con.buildSessionFactory();
    Session session= SF.openSession();
    Transaction TR = session.beginTransaction();
    Query query=session.createQuery("from IterationInfo");
    List<IterationInfo> listiterationinfo=query.list();
    session.close();
    SF.close();
    return listiterationinfo;
}

I think when I return listiterationinfo at that point it is converted to Json and so subsequently the date from DD-MM-YY to epoch.I want the Json to DD-MM-YYY format.In the database it is in DD-MM-YYYY.Code for the PoJo/DAO class is as

    public class IterationInfo 
{
    private int projectid;
    private int iterationid;
    private String iterationname;



    private Date iterationstartdate;


    private Date iterationenddate;

    public int getProjectid() {
        return projectid;
    }

    public void setProjectid(int projectid) {
        this.projectid = projectid;
    }

    public int getIterationid() {
        return iterationid;
    }

    public void setIterationid(int iterationid) {
        this.iterationid = iterationid;
    }

    public String getIterationname() {
        return iterationname;
    }

    public void setIterationname(String iterationname) {
        this.iterationname = iterationname;
    }

    public Date getIterationstartdate() {
        return iterationstartdate;
    }

    public void setIterationstartdate(Date iterationstartdate) {
        this.iterationstartdate = iterationstartdate;
    }

    public Date getIterationenddate() {
        return iterationenddate;
    }

    public void setIterationenddate(Date iterationenddate) {
        this.iterationenddate = iterationenddate;
    }

    }

Kindly suggest what do I modify.

Akshay
  • 1,161
  • 1
  • 12
  • 33
  • Dates do not have any inherent formatting, use SimpleDateFormat https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html – Scary Wombat Jan 13 '17 at 06:04
  • Yes but in database it values are in DD-MM-YY.When I display on console using System.out.println(....) the values are in DD-MM-YY.But using the public @ResponseBody List getIterationInfoInJSON method it gets returned in Epoch. – Akshay Jan 13 '17 at 06:18
  • How to convert it to DD-MM-YY as I want DD-MM-YY as the JSon output – Akshay Jan 13 '17 at 06:19
  • see http://stackoverflow.com/a/27102120/2310289 – Scary Wombat Jan 13 '17 at 06:21
  • Thanks..I need to put this @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm a z") in the POJO class??Or controller – Akshay Jan 13 '17 at 06:22
  • read the answer that I linked, it says *Since Jackson v2.0, you can use @JsonFormat annotation directly on Object members* – Scary Wombat Jan 13 '17 at 06:23

0 Answers0