MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Преобразувайте формат за дата и час от уеб услуга в низ

Има два начина да постигнете това.

  1. Използвайте сериализатори на Jackson - за глобално преобразуване. Прилага се към всяка реализация
  2. Потребителски Spring WebDataBinder и PropertyEditorSupport. Можете да изберете кой контролер се нуждае от това преобразуване

Внедрете сериализатор на Jackson

Регистрирайте се над класа в модула Jackson

public class CustomDateTimeSerializer extends JsonSerializer<DateTime> {
    // Customize format as per your need 
    private static DateTimeFormatter formatter = DateTimeFormat
            .forPattern("yyyy-MM-dd'T'HH:mm:ss");

    @Override
    public void serialize(DateTime value, JsonGenerator generator,
                          SerializerProvider serializerProvider)
            throws IOException {
        generator.writeString(formatter.print(value));
    }

}

Добавяне на сериализатор към модул Jackson

@Configuration
public class JacksonConfiguration {

    @Bean
    public JodaModule jacksonJodaModule() {
        final JodaModule module = new JodaModule();
        module.addSerializer(DateTime.class, new CustomDateTimeSerializer());
        return module;
    }
}

Използвайте API на WebBinder и PropertyEditorSupport

Внедрете PropertyEditorSupport

public class DateTimeEditor extends PropertyEditorSupport {

    private final DateTimeFormatter formatter;

    public DateTimeEditor(String dateFormat) {
        this.formatter = DateTimeFormat.forPattern(dateFormat);
    }

    public String getAsText() {
        DateTime value = (DateTime) getValue();
        return value != null ? value.toString(formatter) : "";
    }

    public void setAsText( String text ) throws IllegalArgumentException {
        if ( !StringUtils.hasText(text) ) {
            // Treat empty String as null value.
            setValue(null);
        } else {
            setValue(new DateTime(formatter.parseDateTime(text)));
        }
    }
}

Добавете този PropertyEditor към Rest Controller

@RestController
@RequestMapping("/abc")
public class AbcController {

    @InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.registerCustomEditor(DateTime.class, new DateTimeEditor("yyyy-MM-dd", false));
    }

}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Съхраняващ масив с Doctrine и MongoDB

  2. MongoDB Compass - блокира при свързване с Atlas

  3. Връща конкатенацията на резултата от обратните извиквания, извикан в рамките на цикъл

  4. MongoDB $sum Оператор на конвейер за агрегиране

  5. Mongo::OperationFailure - трябва да влезете, когато използвате from_uri