相关疑难解决方法(0)

如何将"Mon Jun 18 00:00:00 IST 2012"更改为2012年6月18日?

我有一个类似下面的值Mon Jun 18 00:00:00 IST 2012,我想将其转换为18/06/2012

怎么转换这个?

我尝试过这种方法

public String toDate(Date date) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
        Date theDate = null;
        //String in = date + "/" + month + "/" + year;
        try {
            theDate = dateFormat.parse(date.toString());
            System.out.println("Date parsed = " + dateFormat.format(theDate));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return dateFormat.format(theDate);
    }
Run Code Online (Sandbox Code Playgroud)

但它抛出以下异常:

java.text.ParseException: Unparseable date: "Mon Jun 18 00:00:00 IST 2012"

java date

29
推荐指数
3
解决办法
15万
查看次数

JSON以自定义格式序列化日期(无法从String值构造java.util.Date的实例)

could not read JSON: Can not construct instance of java.util.Date from String 
value '2012-07-21 12:11:12': not a valid representation("yyyy-MM-dd'T'HH:mm:ss.SSSZ", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "EEE, dd MMM yyyy HH:mm:ss zzz", "yyyy-MM-dd"))
Run Code Online (Sandbox Code Playgroud)

将json请求传递给POJO类中的REST控制器方法.用户应该只输入以下日期时间格式,否则它应该抛出message.why DateSerializer没有调用?

add(@Valid @RequestBody User user)
{
}
Run Code Online (Sandbox Code Playgroud)

JSON:

{
   "name":"ssss",
   "created_date": "2012-07-21 12:11:12"
}
Run Code Online (Sandbox Code Playgroud)

pojo类变量

@JsonSerialize(using=DateSerializer.class)
@Column
@NotNull(message="Please enter a date")      
@Temporal(value=TemporalType.TIMESTAMP)
private Date created_date;

public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
    logger.info("serialize:"+value);
    DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    logger.info("DateSerializer formatter:"+formatter.format(value));
    jgen.writeString(formatter.format(value));
}
Run Code Online (Sandbox Code Playgroud)

json spring-mvc jackson fasterxml

27
推荐指数
2
解决办法
6万
查看次数

Jackson 2.3.2:尽管将日期格式设置为ObjectMapper,但仍然会对Date进行反序列化

我正在使用休息,并希望序列化和反序列化日期.

创建我的json提供程序后,序列化工作正常,但反序列化仍然无法正常工作.

我的JsonProvider类:

@Provider
@Produces(MediaType.APPLICATION_JSON)
public class JsonProvider extends JacksonJaxbJsonProvider {

   public JsonProvider() {

      ObjectMapper mapper = new ObjectMapper();
      mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
      mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
      mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
      mapper.setDateFormat("dd MMM, yyyy hh:mm:ss a";

      super.setMapper(mapper);
   }
}
Run Code Online (Sandbox Code Playgroud)

输入日期:2014年9月9日上午11:00:00

错误: com.fasterxml.jackson.databind.exc.InvalidFormatException:无法从字符串值'09 Sep,2014 11:00:00 AM'构造java.util.Date的实例:不是有效的表示形式(错误:无法解析日期值'09 Sep,2014 11:00:00 AM':无法解析日期"09 Sep,2014 11:00:00 AM":与任何标准格式不兼容("yyyy-MM-dd'T'HH :mm:ss.SSSZ","yyyy-MM-dd'T'HH:mm:ss.SSS'Z'","EEE,dd MMM yyyy HH:mm:ss zzz","yyyy-MM-dd" ))

我遇到了这个解决方法但是如果我使用它,那么我必须在我的应用程序中注释每个日期字段,我觉得这是一个开销.

我无法弄清楚我做错了什么.

任何帮助,将不胜感激.

谢谢.

datetime json resteasy deserialization

7
推荐指数
1
解决办法
2万
查看次数