我们如何将com.datastax.driver.core.LocalDate转换为java.util.Date



我正在处理日期。

Datastax的CQL cassandra API Row.getDate()返回com.datastax.driver.core.LocalDate

我想将API返回的com.datastax.driver.core.LocalDate对象转换为java.util.Date。我该怎么做呢?

LocalDate.getMillisSinceEpoch() Javadoc表示返回自1970 GMT时间1月1日以来的毫秒数。并且,Date(long)构造器Javadoc说分配一个Date对象并初始化它以表示自标准基准时间(称为"epoch")以来指定的毫秒数,即1970年1月1日,00:00:00 GMT。那么,给定LocalDate ld你应该能够做一些像

Date d = new Date(ld.getMillisSinceEpoch());

正如另一个答案所提到的,您可以使用

Date d = new Date(row.getDate().getMillisSinceEpoch());

或者你可以使用java.sql.Date.valueOf

Date d = java.sql.Date.valueOf(row.getDate().getString());

我个人使用row.getTimestamp代替row.getDate,它返回Date对象本身

Date d = row.getTimestamp();

您可以按照以下步骤,将datastax LocalDate转换为Date:

  1. 使用年,月和日期从数据ax LocalDate创建LocateDate
    datstax。Localdate dt = somevalue
    java.time.LocalDate ld = java.time.LocalDate.of(dt.getYear(), dt.getMonth(), dt.getDay())
  2. LocalDate上面的
  3. 格式,那么你将得到字符串类型的date
    String dtt = ld.format(datetimeformatter . ofpattern ("dd/MM/yyyy"))
  4. 然后使用SimpleDateFormat转换
    日期tt = new SimpleDateFormat("dd/MM/yyyy").parse(dtt)

享受:)

最新更新