我有jackson反序列化器将json字符串中的日期转换为日历对象。我正在路过" 2015-10-22"在请求中它被转换为" 2015-10-22-04:00"在我将其转换为日历对象后。有没有办法抑制发送时区?在使用XMLGregorianCalendar的场景中,我正在使用" date.setTimezone(DatatypeConstants.FIELD_UNDEFINED)"压制时区。
private static SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
@Override
public Calendar deserialize(JsonParser jsonparser, DeserializationContext arg1) throws IOException, JsonProcessingException {
// TODO Auto-generated method stub
String dateString = jsonparser.getText();
try {
Calendar calendar = Calendar.getInstance();
calendar.setTime(formatter.parse(dateString));
return calendar;
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
答案 0 :(得分:1)
没有发送时区,所以问题"有没有办法抑制发送时区?"没有意义。
Calendar.getInstance()
方法指定默认时区,请参阅javadoc:
使用默认时区和区域设置获取日历。返回的
Calendar
基于默认时区的当前时间和默认语言环境。
然后替换"当前时间"调用setTime()
,但时区和语言环境保持不变。
Calendar
对象将始终拥有时区和区域设置。