Я должен обновить ответ на этот вопрос, мне нужно было сделать то же самое, и я использовал принятый ответ, но полученная Дата была неправильной, она давала мне дату недели раньше (Не знаю почему). Я не знаю много о типе даты Java, но я знаю, что некоторые из их методов устарели.
Говорят, что я думаю, что это самый последний правильный ответ для этой ситуации. Надежда помогает кому-то еще
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
.....
final Calendar cal = GregorianCalendar.getInstance(TimeZone.getTimeZone("GMT"));
cal.setTime(value); // Where Value is a Date
final long date = cal.getTime().getTime();
final String senddate = "/Date("+date+")/";
Обратите внимание на использование Date с заглавными буквами "D" , это также необходимо, потому что это вызывает проблемы с WCF (по крайней мере, в моем случае, застрял много только для строчной буквы D)
Я использую его для использования RESTful WCF с библиотекой Джексона для JSON.
Чтобы добавить полный ответ, его можно использовать таким образом для даты, которую вы хотите сериализовать с Джексоном.
import java.io.IOException;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.TimeZone;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.annotate.JsonCreator;
import org.codehaus.jackson.map.SerializerProvider;
import org.codehaus.jackson.map.ser.std.SerializerBase;
/**
* @author HECTOR
*
*/
public class SerializeRESTDate extends SerializerBase<Date> {
public SerializeRESTDate() {
// TODO Auto-generated constructor stub
this(Date.class);
}
@JsonCreator
protected SerializeRESTDate(Class<Date> t) {
super(t);
// TODO Auto-generated constructor stub
}
@Override
public void serialize(Date value, JsonGenerator jgen,
SerializerProvider provider) throws IOException,
JsonGenerationException {
final Calendar cal = GregorianCalendar.getInstance(TimeZone.getTimeZone("GMT"));
cal.setTime(value);
final long date = cal.getTime().getTime();
final String senddate = "/Date("+date+")/";
jgen.writeString(senddate);
}
}
И используйте это вот так в определении своего класса
@JsonSerialize(using = SerializeRESTDate.class)
@JsonProperty("InspectionDate")
/**
* @return the _InspectionDate
*/
public Date get_InspectionDate() {
return _InspectionDate;
}