Я отправляю на свою конечную точку данные departureTime: "2019-10-21"
и вывожу полученную переменную flightTime в своей программе Spring.
@CrossOrigin(origins = "*")
@RequestMapping(value="/travel/query", method= RequestMethod.POST)
public ArrayList<TripResponse> query(@RequestBody QueryInfo info,@RequestHeader HttpHeaders headers){
if(info.getStartingPlace() == null || info.getStartingPlace().length() == 0 ||
info.getEndPlace() == null || info.getEndPlace().length() == 0 ||
info.getDepartureTime() == null){
System.out.println("[Travel Service][Travel Query] Fail.Something null.");
ArrayList<TripResponse> errorList = new ArrayList<>();
return errorList;
}
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar ca = Calendar.getInstance();
ca.setTime(info.getDepartureTime());
System.out.println("Departure date is " + format.format(ca.getTime()));
...
}
public class QueryInfo {
@Valid
@NotNull
private String startingPlace;
@Valid
@NotNull
private String endPlace;
@Valid
@NotNull
private Date departureTime;
public QueryInfo(){
//Default Constructor
}
public String getStartingPlace() {
return startingPlace;
}
public void setStartingPlace(String startingPlace) {
this.startingPlace = startingPlace;
}
public String getEndPlace() {
return endPlace;
}
public void setEndPlace(String endPlace) {
this.endPlace = endPlace;
}
public Date getDepartureTime() {
return departureTime;
}
public void setDepartureTime(Date departureTime) {
this.departureTime = departureTime;
}
}
На консоли отображается «Дата отправления 2019-10-20».
Сервер, на котором запущена моя весенняя программа, должен находиться в часовом поясе UTC-7.
Есть идеи, почему возникает эта ошибка? Как мне внести минимальные изменения, чтобы исправить это?
Редактировать:
Я запускаю
System.out.println(ca.getTimeZone().toString());
, выводит sun.util.calendar.ZoneInfo[id="America/Los_Angeles"...
. Я думаю, что это правильно.