如何在Java中将Date格式转换为dd-MM-yyyy格式,并返回一个Date对象



我正在制作一个API,以dd-MM-yyyy格式处理日期。但是使用Date对象,我得到yyyy-MM-dd格式。我试图改变日期格式,通过许多方式,如以下代码-

package com.example.internshala.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

public class Ship {
private String loadingPoint;
private String unloadingPoint;
private String productType;
private String truckType;
private int noOfTrucks;
private int weight;
private String comment;
private UUID shipperId;
private String date;
//--------------------------------------
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
//--------------------------------------
public String getLoadingPoint() {
return loadingPoint;
}

public String getUnloadingPoint() {
return unloadingPoint;
}

public String getProductType() {
return productType;
}

public String getTruckType() {
return truckType;
}

public int getNoOfTrucks() {
return noOfTrucks;
}

public int getWeight() {
return weight;
}

public String getComment() {
return comment;
}

public UUID getShipperId() {
return shipperId;
}

public String getDate() {
return date;
}

public Ship(@JsonProperty("loadingPoint") String loadingPoint,
@JsonProperty("unloadingPoint") String unloadingPoint,
@JsonProperty("productType") String productType,
@JsonProperty("truckType") String truckType,
@JsonProperty("noOfTrucks") int noOfTrucks,
@JsonProperty("weight") int weight,
@JsonProperty("comment") String comment,
@JsonProperty("shipperId") UUID shipperId,
@JsonProperty("Date") Date date) {
this.loadingPoint = loadingPoint;
this.unloadingPoint = unloadingPoint;
this.productType = productType;
this.truckType = truckType;
this.noOfTrucks = noOfTrucks;
this.weight = weight;
this.comment = comment;
this.shipperId = shipperId;
String newDate=date.toString();
this.date=formatter.format(newDate);

}
}

我也把它应用到直接日期对象作为构造函数参数,但它给出错误——com.fasterxml.jackson. databindd . excs . valueinstantiationexception

我想不出任何好的理由不将日期保存在日期对象之外的任何其他对象中。(如前所述,Date已过时,因此LocalDate是更好的选择。)

从我看到你的代码,你正在使用杰克逊读/写一个文件。而不是改变你自己的类,它将输出你所期望的文件,你改变你正在使用的库,在本例中是jackson,以你想要的格式写入和读取值。

你有很多不同的方法来做这件事。例如,您可以像这样将格式设置为默认格式:

DateFormat df = new SimpleDateFormat("dd-MM-yyyy");
objectMapper.setDateFormat(df);

或者只更改一个属性

public class Ship {
// Code
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy")
private Date date;
// Code
}

你应该改变

String newDate=date.toString();
this.date=formatter.format(newDate);

this.date=formatter.format(date);

import java.text.SimpleDateFormat;进口java.util.Date;

public class SamDateFormat
{
public static void main(String[] args)
{
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String currDate= formatter.format(date);
System.out.println(currDate);
}
}

相关内容

  • 没有找到相关文章

最新更新