MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Chuyển đổi định dạng ngày giờ từ dịch vụ web thành một chuỗi

Có hai cách để đạt được điều này.

  1. Sử dụng Jackson Serializers - Để chuyển đổi toàn cầu. Áp dụng cho mọi chuyển đổi
  2. User Spring WebDataBinder và PropertyEditorSupport. Bạn có thể chọn bộ điều khiển nào cần chuyển đổi này

Triển khai bộ nối tiếp Jackson

Đăng ký lớp trên vào Học phần 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));
    }

}

Thêm Serializer vào Jackson Module

@Configuration
public class JacksonConfiguration {

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

Sử dụng API WebBinder và PropertyEditorSupport

Triển khai 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)));
        }
    }
}

Thêm PropertyEditor này vào 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. cách tạo chỉ mục từ mongoose trong tìm kiếm đàn hồi trong nút, expressjs

  2. Truy vấn Mongoose / mongoDB tham gia .. nhưng tôi đến từ nền sql

  3. cụm mongodb với điểm cuối ELB là dns

  4. cách so sánh hai trường trong một tài liệu trong tổng hợp đường ống (mongoDB)

  5. giảm giá trị trong bộ sưu tập cho đến 0