如何在JAVA中转换String中的ISOdate

时间:2016-12-01 10:36:41

标签: java mongodb

我使用MongoDB来保存我的数据,在数据库中我可以看到像这样的日期值

ISODate("2016-11-30T11:17:20.945Z")

但是当我在前端解析它时,它变得像

createdOn : 1480582463992

我想转换“ISODate(”2016-11-30T11:17:20.945Z“)”它在JAVA中,而不是在js中以这样的方式转换,以便我可以获得字符串日期值。

提前致谢

=============================================== ===============

这是我的java代码

@Override
public List<Prescription> getcus(
        String id, String cid) {
    List<Prescription> listrescription = null;
    listrescription  = this.patientDBService.getPatientLastThreePrescription(id, cid);

    Prescription prre = new Prescription();
    for(Prescription i : listrescription){ 
        //Date dates = new Date();
        //i.getCreatedOn(); // getting the data from mongo like 1480582463992

    //no clue what to do here to get ISO date as in string
     }
    return listrescription;
}

2 个答案:

答案 0 :(得分:0)

试试这个:

 new Date("2016-11-30T11:17:20.945Z")

答案 1 :(得分:0)

如果您不关心时区,您可以使用此方法解析日期格式,例如“2017-06-19T05:27:26.000Z”

private static String convertMongoDate(String val){
    SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
    SimpleDateFormat outputFormat= new SimpleDateFormat("yyyy/MM/dd");
    try {
        String finalStr = outputFormat.format(inputFormat.parse(val));
        System.out.println(finalStr);
        return finalStr;
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return "";
}