2016-04-07 7 views
0

このスプリングRESTfulな日付フォーマット

@Transactional 
@RequestMapping(value="/A", method = RequestMethod.POST) 
public ABean aInsert(final java.sql.Date when, final long company) { 
    A bean = new A(); 
    bean.setWhen(when); 
    bean.setCompany(entityManager.find(Company.class, company)); 
    entityManager.persist(bean); 
    return new ABean(bean.getId(), bean.getVersion(), bean.getWhen(), bean.getCompany().getId()); 
} 

等jdk8における残りコントローラは

when=1459987200000&company=1 

フォーム後データと呼ばれるが、呼び出され400 - bad request (description The request sent by the client was syntactically incorrect.)を返すことができません。

私の質問は:

  • java.sql.dateのデフォルトの入力文字列の形式は何ですか?

答えて

0

when=2016-04-21&company=10ワークス、その

yyyy-mm-dd 

他のすべての形式については、このようなカスタムConverter登録して:

@Autowired 
private final ConfigurableConversionService conversionService=null; 

@PostConstruct 
public void registerConverter() { 
    conversionService.addConverter(new Converter<String, Long>() { 
     @Override 
     public Long convert(String source) { 
      try { 
       SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd'T'hh:mm"); 
       return df.parse(source).getTime(); 
      } catch (ParseException e) { 
       return Long.parseLong(source); 
      } 
     } 
    }); 
} 
関連する問題