采用com.datastax.driver.core.LocalDate
您可以使用以下任何一种方法
LocalDate从
java.util.Date
- LocalDate.fromYearMonthDay(2017,03,28)
- LocalDate.fromMillisSinceEpoch(new Date()。getTime())
或者,您可以创建自己的编解码器,以允许您将其插入
java.util.DateCassandra日期类型。
您可以像下面这样开始:
public class DateCodec extends TypeCodec<Date> { private final TypeCodec<LocalDate> innerCodec; public DateCodec(TypeCodec<LocalDate> prec, Class<Date> javaClass) { super(prec.getCqlType(), javaClass); innerCodec = prec; } @Override public ByteBuffer serialize(Date value, ProtocolVersion protocolVersion) throws InvalidTypeException { return innerCodec.serialize(LocalDate.fromMillisSinceEpoch(value.getTime()), protocolVersion); } @Override public Date deserialize(ByteBuffer bytes, ProtocolVersion protocolVersion) throws InvalidTypeException { return new Date(innerCodec.deserialize(bytes, protocolVersion).getMillisSinceEpoch()); } @Override public Date parse(String value) throws InvalidTypeException { return new Date(innerCodec.parse(value).getMillisSinceEpoch()); } @Override public String format(Date value) throws InvalidTypeException { return value.toString(); }}
创建connectin时,必须注册:
CodecRegistry precRegistry = new CodecRegistry();precRegistry.register(new DateCodec(TypeCodec.date(), Date.class));Cluster.builder().withCodecRegistry(precRegistry).build();
有关更多信息:http : //docs.datastax.com/zh-CN/developer/java-
driver/3.1/manual/custom_precs/
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)